8 de junho de 2020

Delay com Millis() - Multitarefas

Quando é necessário executarmos várias tarefas ao mesmo tempo, precisamos limitar a utilização do delay() no código fonte, e utilizarmos mais a função millis().


A função millis() retorna o tempo que o microcontrolador está ligado, em milissegundos.
Guardando o valor de tempo que o processo foi executado e comparando com o valor de tempo atual, poderemos calcular quando deve ser executado novamente.

Para facilitar a lógica, fiz a biblioteca MillisTimerLib que faz o gerenciamento das variáveis para cada processo que for utilizar.

17 de maio de 2020

Comunicação Python com Arduino

Através da comunicação serial, o Arduino troca informações com um programa Python no computador.


O Python pode receber informações de sensores conectados ao Arduino e enviar comandos para serem executados.

8 de maio de 2020

Saídas PWM no ESP32 - Biblioteca

Utilizar as saídas PWM no ESP32 é um pouco diferente do Arduino.
É necessário configurar os canais, a resolução e a frequência que será utilizada por cada pino.


Para facilitar o uso, fiz a biblioteca PWMOutESP32 que permite que o uso seja simplificado.
Utilizando a biblioteca para controlar as saídas PWM, usa-se somente o analogWrite() como é no Arduino.

30 de abril de 2020

Trava Analógica

Como nos cofres mecânicos, é necessário selecionar a combinação dos números girando o disco.


O projeto faz a simulação do "38 para direita, 21 para esquerda" como nos cofres de discos.

A combinação fica armazenada na memória EEPROM e é possível utilizar uma senha entre 1 e 5 números, sendo cada um entre 01 e 99.
No vídeo, a trava é aberta com a combinação 38 - 21 - 54.

25 de abril de 2020

Sequencial de LEDs com Fade

Com controle de brilho e estruturas de repetições vamos acionar seis leds em um sequencial.


Utilizamos a modulação por largura de pulso, o PWM (Pulse-Width Modulation), para controlar a intensidade dos leds.

22 de abril de 2020

BadUSB - Digispark Attiny85

Veremos um exemplo de ataque por hardware e como pode ser perigoso.


O BadUSB é um dispositivo que ao ser conectado na porta USB do computador já efetua o ataque.
Não é necessário que o usuário execute e nem clique em nada.

7 de dezembro de 2019

Relógio Binário de Mesa

Vamos visualizar as horas em um relógio binário.


As horas são exibidas na primeira linha de leds, os minutos na linha do centro e os segundos na linha de baixo.

24 de agosto de 2019

Watchdog Timer - ESP32

Um sistema de Watchdog é responsável por reiniciar o circuito caso ocorra travamentos.
Vamos ver como configurá-lo no ESP32.


Na postagem Watchdog Timer - Reset Automático do Circuito foi detalhado melhor como funciona um watchdog e, utilizamos um Arduino.

Nesse exemplo veremos como utilizar no ESP32.

3 de agosto de 2019

WiFi Scan com ESP32 - Buscando e conectando em redes abertas

O circuito permanece verificando as redes WiFi disponíveis e, quando encontrar redes abertas efetua a conexão na que estiver com o melhor sinal.


Quando já conectado, continua verificando se existem redes abertas com um melhor sinal e, caso exista, faz a conexão na nova rede.

9 de julho de 2019

Loterias

Vamos ver o funcionamento da função random() sorteando números da loteria.

16 de fevereiro de 2019

Dado Eletrônico com Attiny85

Pequeno projeto com o microcontrolador Attiny85.


3 de fevereiro de 2019

Zumbido Secreto

Um zumbido secreto começa quando as luzes se apagam.


18 de janeiro de 2019

Gravador Arduino - Bootloader e Sketch

Como gravar o bootloader e também o sketch no microcontrolador Atmega328.


Uma forma prática de como gravar vários microcontroladores sem gastar muito tempo.

8 de dezembro de 2018

Watchdog Timer - Reset Automático do Circuito

Um sistema de Watchdog é responsável por reiniciar o circuito caso ocorra travamentos.


O watchdog funciona como um cronômetro e, ao atingir seu tempo limite é disparado o comando de reset do circuito.
Em projetos onde o circuito necessita estar operando por várias horas, a utilização do recurso de reset automático para prevenção de travamentos é essencial.

É possível o sistema de watchdog por hardware e via software.
Vamos ver como fazer por software no Arduino.

2 de dezembro de 2018

Código Morse

O Código Morse é um sistema de comunicação binário enviado de modo intermitente. Os caracteres são representados por uma sequência única de pontos e traços.
Vamos codificar textos para sinais sonoros e visuais!


Criado por Samuel Morse em 1835, o código Morse surgiu para ser a linguagem utilizada na transmissão de mensagens através do telégrafo elétrico.

O sinal de socorro mais comum é o SOS, formado por três pontos, três traços e três pontos. Esse sinal é internacionalmente reconhecido.
...---...

1 de dezembro de 2018

Gravar arquivo .hex no Arduino e ESP32 - Proteger Sketch

Uma forma de proteger seu código fonte é compartilhar o arquivo compilado.


Após desenvolver o programa, é possível compilar gerando um arquivo com a extensão .hex e gravá-lo no Arduino.
Para projetos profissionais é uma maneira de manter seu código fonte seguro, podendo enviar para gravação nas placas sem compartilhar o desenvolvimento da lógica de programação.

18 de novembro de 2018

Descarga Automática

Como é o funcionamento de uma descarga automática.


O sensor detecta e somente aciona a descarga após verificar que não existe mais a presença.

4 de novembro de 2018

Sorteio Digital

Projeto para sortear números aleatórios entre 0 e 9.


Ao pressionar o botão um número é sorteado e exibido em um display de leds.

21 de outubro de 2018

Teste de Reação

O jogo para testar seu tempo de reação.


O display exibirá seu tempo de reação em milissegundos.

Memorize a cor do LED e mantenha o botão pressionado. O LED piscará aleatoriamente em cores diferentes, e ao visualizar a cor memorizada solte o botão!

Consegue ser rápido?

13 de outubro de 2018

SleepMode - Reduzindo o consumo de energia do Arduino

Como reduzir o consumo de energia do projeto e aproveitar as baterias por muito mais tempo.

 
Um Arduino Pro Mini ligado sem nenhuma carga, caiu de 15 mA para apenas 3 mA. Uma redução de 80% do consumo.

6 de outubro de 2018

Controle Remoto RF433Mhz

Controle remoto RF 433Mhz com Attiny85


28 de janeiro de 2018

Giroflex

Exemplo de um circuito básico de giroflex.


11 de janeiro de 2018

Trena Digital

Medidor de distância com precisão de até 400cm utilizando um sensor ultrassônico.

9 de dezembro de 2017

Sensor de Terremoto

Quando um movimento é detectado, o circuito aciona as luzes.

3 de dezembro de 2017

Controle Bluetooth HC-06

Projeto base para controlar um circuito utilizando conexão bluetooth.

18 de novembro de 2017

Controle de Acesso com RFID e EEPROM

Controlar o acesso através de tags RFID (Radio Frequency IDentification) é uma solução muito utilizada nos dias hoje.
Esse projeto armazena os cartões cadastrados na memória EEPROM.


14 de novembro de 2017

Termômetro Ambiente

Um termômetro simples com um display de 7 segmentos / 4 dígitos, e um sensor de temperatura LM35.

12 de novembro de 2017

Teclado Matricial

Função para ler um teclado matricial e retornar a tecla pressionada.


20 de fevereiro de 2016

Capacitor de Fluxo

O capacitor de fluxo é o principal componente da máquina do tempo construída pelo Doutor Brown. É o componente responsável por tornar a viagem no tempo possível.


29 de junho de 2014

MemoryLib.h EEPROM

Vamos falar um pouco sobre a memória EEPROM.
Essa biblioteca vai ajudar!


Quando desenvolvemos um projeto com o Arduino nosso de cada dia, muitas vezes precisamos manter os valores de algumas variáveis, de forma que seja possível desligar o circuito sem a perda da mesma.
Um circuito de um relógio, por exemplo, para ter a função alarme/despertador, temos que guardar o horário em memória.
A biblioteca que já conhecemos e utilizamos para acessar a memória, nos permite escrever em cada endereço apenas 1 byte (valores de 0 a 255).

Mas se precisarmos armazenar um valor lido por um sensor conectado na porta analógica, que nos retorna valores de 0 a 1024?
E se entre as infinitas possibilidades, precisarmos armazenar um valor compreendido entre 0 a 999999999?

Para esses casos já começamos a ter um certo trabalho. Foi pensando nisso que resolvi desenvolver essa biblioteca que faz esse gerenciamento da memória EEPROM e facilita a minha vida!

E só incluir a MemoryLib.h no projeto e vida nova!