Home › Category Archives › Produtos

Módulo receptor RF de 315MHz

Este módulo pode ser usado em conjunto com um transmissor para comunicação entre arduinos. Porém meu “foco” é a sua capacidade de decodificar comandos emitidos por controles remotos comerciais operando na faixa dos 315MHz.

Atenção:  o receptor precisa de uma antena mas vem sem ela. Solde um pedaço de fio de aproximadamente 23.8cm (este é o comprimento “ótimo” para 315Mhz) no orifício que você vê no canto inferior esquerdo da foto. O fio pode ficar enrolado como uma espiral, para poupar espaço.

Instale a biblioteca RC-Switch.

Rode o sketch Examples->RCSwitch->ReceiveDemo_Simple

O pino DATA do receptor é conectado ao pino 2 do arduino.

Ao apertar os botões de um controle remoto compatível, algo assim deve aparecer na porta serial (eu apertei dois botões):

Received 1393741 / 24bit Protocol: 1
Received 1393777 / 24bit Protocol: 1

Testado com um controle remoto genérico baseado no bem conhecido chip codificador SC2262 (PT2262) e com vários outros baseados no mais sofisticado ev1527 (SC1527,RT1527, FP1527).

Programador Willem

Software necessário. Você não precisa instalar a versão mais antiga, mas se instalar, um dia irá descobrir que certos chips funcionam com a versão velha e não funcionam com a nova. O software do Willem tem muitos bugs e infelizmente não há outro que funcione com o gravador.

Software Willem 0.98d12
Software Willem 0.98d12
Willem_098d12_NoInstall.zip
Version: 0.98d12
643.3 KiB
648 Downloads
Detalhes...
Software Willem 0.98d10
Software Willem 0.98d10
setup_098d10.exe
Version: 0.98d10
946.7 KiB
222 Downloads
Detalhes...
Software Willem 0.98d5
Software Willem 0.98d5
Sivava_98d5_PCB45.exe
Version: 0.98d5
948.6 KiB
216 Downloads
Detalhes...
XP Stop Polling
XP Stop Polling
XP_stop_polling.zip
317.0 B
303 Downloads
Detalhes...

LCD Gráfico 128×64 (12864) compatível com ST7920

Fundo azul e letras cinzentas.

Compatível com o modelo FIT0021 da DFrobot

A visibilidade deste display não é muito boa. A escolha da cor de fundo e cor das letras não oferece um constraste muito bom.

Este display pode ser operado em dois modos: paralelo e serial. O Arduino tem velocidade suficiente para a operação serial, que economiza muitas conexões: apenas três saídas digitas são necessárias.

Compatível com a biblioteca u8glib. Para operação no modo serial, abra o exemplo GraphicsTest  e “descomente” a linha:

//U8GLIB_ST7920_128X64 u8g(18, 16, 17, U8G_PIN_NONE);

O exemplo acima requer um Arduino Mega, mas se quiser usar um Arduino UNO:

U8GLIB_ST7920_128X64 u8g(3, 9, 8, U8G_PIN_NONE);                  // E: D3, RS: D8 e R/W:D9

É só um exemplo. Você é livre para escolher que pinos usar

Os exemplos Chess , “F” (sequer compilou) e menu não funcionaram comigo, nem no Duemilanove, nem no Mega.

Exemplos retirados do demo GraphicsTest:

Você também pode usar o demo da DfRobot. Imagem retirada dele:

Ao usar o demo GraphicsTest a imagem parecerá estar “de cabeça para baixo”. É normal.

Abaixo, cópias locais de alguns arquivos (links gerados automaticamente).

Módulo display LCD 1602 serial I2C / TWI e SPI

Baseado em chip MCP23008. Endereço I2C default: 0×0, mas configurável com jumpers de solda. Este é o modelo fabricado pela Elecfreaks, que é uma variação do modelo da Adafruit

É necessário remover a biblioteca liquidcrystal e instalar a fornecida.

Backlight

O backlight pode ser controlado pelo software. Procedure setBacklight () da biblioteca.

Relação de peças disponíveis

Os preços indicados, quando existirem, são preços-base para novos clientes e de uma unidade apenas. Dependendo da forma de pagamento, item e quantidade, ofereço descontos que vão de 10 a 40% sobre os preços listados.

Tudo com pronta entrega em Recife. Mesmo que o componente não esteja na lista, me consulte. Eu posso ter esquecido de listar ou posso conseguir para entrega em 2-10 dias.

Placas base

  • Arduino Nano V3 – R$50
  • Arduino Pro 168 – R$50
  • Arduino Mega 2560 – R$99
  • Arduino UNO – R$79
  • Arduino Duemilanove – R$70
  • Chip ATMEGA328P com bootloader UNO – R$25

Shields diversos

Comunicações

Relês

Os módulos de 2 e 8 relês são deste tipo

  • Módulo de relês, com 2; – R$30
  • Módulo de relês, com 4; – R$50
  • Módulo de relês, com 8 – R$79

Servos, motores e Robótica

  • Kit robótico com garra; – R$250
  • Kit Pan Tilt com servos MG995; – R$150
  • Kit Pan Tilt com micro servos; – R$50
  • Kit motor de passo 28BYJ-48 (motor + placa driver ULN2003); – R$25
  • Wii Nunchuck;
  • Módulo para motores, baseado em L298N
  • Kit de smart car – Motores, rodas, plataformas.

Sensores

  • Sensor de gases (metano, propano, GLP, alcool) e fumaça;
  • Sensor ultrassônico – Medição de distâncias;
  • Sensor de pressão Freescale modelo MPX5010DP – mede pressão de qualquer fluido: ar, água, óleo… A principal aplicação é medir o nível de liquidos com precisão;
  • Sensor de ruído (microfone, LM393, trimpot) Saída analógica e ON/OFF
  • Sensor de nível para caixa dágua – Simples, do tipo bóia;
  • Sensor indutivo
  • Sensor infravermelho refletivo, com ajuste de sensibilidade;
  • Sensor de presença PIR
  • Sensor de temperatura digital Dallas DS18B20 (apenas o chip) – Datasheet – Library – 20+pcs
  • Sensor de temperatura analógico LM35DZ (apenas o chip) -30+pcs

Display

1602 significa “16 colunas x 2 linhas”. Todos os 1602 que tenho são compatíveis com o padrão HD44780.

LED

  • Display LED Matrix inteligente bicolor, vermelho e verde, 32×16. Baseado no chip HT1632C (demos disponíveis para Arduino)
  • Display LED Matrix inteligente verde 32×8. Baseado no chip HT1632C (demos disponíveis para Arduino)
  • Display LED Matrix inteligente vermelho 32×8. Baseado no chip HT1632C (demos disponíveis para Arduino)
  • LED strip RGB inteligente (demos disponíveis para Arduino)

Diversos

  • protoboard 700 pontos
  • protoboard 830 pontos
  • kit de cabos macho-macho com 70 unidades
  • kit de cabos fêmea-fêmea com 40 unidades
  • Pinças (hooks) de medição
  • Cabinho 28AWG em diversas cores (ver listagem de componentes)
  • Push button
  • Chave H-H com indicador 115V/230V
  • LED diversas cores e formatos
  • teclado membrana de 16 botões (hexadecimal)~
  • kit controle remoto IR (controle + receptor IRM8601)
  • buzzer 30mm com furos de fixação, 3 a 24Vcc
  • buzzer 10mm
  • header macho de 40 posições
  • header fêmea de 40 posições
  • Conector PS/2 (ver Practical Arduino, pag. 63)

Alimentação

  • Conversor DC-DC ,entrada 8-40V, saída 5V x 3A, baseado em módulo HRD05003 (datasheet) – útil para sistemas embarcados, já que o conversor embutido no Arduino tem capacidade limitada e baixa eficiência (é linear);
  • conector-clip para bateria 9V;
  • Bateria 9V recarregável;
  • Carregador para bateria 9V;

Diversos

  • Módulo GPS
  • Módulos RTC – Para que o Arduino saiba data e hora. Útil em logs e para ativar ou desativar cargas em dias e horários determinados;
  • Módulo Leitor de cartões SD;
  • Módulo gerador/sintetizador de sinais com tecnologia DDS baseado no chip AD9850 (datasheet) 0-40MHz
  • Extensor USB – Permite programar o arduino via USB a dezenas de metros de distância usando cabo de rede comum.

Componentes eletrônicos em geral

Atenção: só forneço componentes nas compras acima de R$150 em módulos, shields e placas-base Arduino.

Tenho diversos outros componentes além dos listados. Essa lista será atualizada periodicamente, sem aviso. Se precisar de algo específico, me consulte. As cores diferentes significam diferentes estoques/fornecedores e alguns componentes podem aparecer duas ou mais vezes na lista por isso.

  • Terminal para alojamento de Conector KK Molex 5051 (requer conector KK, que não tenho para venda)
  • Terminal Para Alojamento de Conector Modu Estanhado
  • Alojamento P/ Conector Modu Simples 10 Vias

Óptico

  • ACOPLADOR OTICO SAIDA TRANSISTOR 50MA (TCET1103) – 50pcs (4 terminais)
  • TIL32 – 7pcs
  • TIL78 – 7pcs
  • PC817 – Datasheet – 30pcs (4 terminais)

Cristal

  • 3.579545 MHz – HC49U – 8pcs
  • 16 MHz Meia caneca – HC49S (usado para criar sua própria versão do Arduino) – 6pcs
  • 1.8432MHZ ~20pcs (usado em portas seriais)
  • 10MHZ 10pcs
  • 20MHZ 10pcs
  • 4MHZ ~10pcs

LDR

  • 10mm – 64pcs
  • 5mm – 19pcs

Diodo

  • Diodo Zener 3V3 0.5W – 80+pcs
  • Diodo Zener 3V6 0.5W – 50+pcs
  • Diodo Zener 8V2 0.5W – 20+pcs

Transistor

  • BD135 20+pcs
  • BD136 20+pcs
  • BD137
  • BD138
  • BD139
  • BD140
  • BF245 20pcs
  • BF244 3pcs
  • BD338 ~20pcs – Transistor de uso geral NPN – Datasheet
  • BC328 ~20pcs – Transistor de uso geral PNP – Datasheet
  • 2N3055 11pcs
  • LM323K 12pcs Linear Voltage Regulator TO-3
  • LM350K 13pcs 3A Adjustable Voltage Regulator NS
  • bux39 1pcs
  • KA317 5pcs

Capacitores

  • Capacitor Disco Cerâmico 100nF x 50V (0,1uF/100K/100Kpf/104) – 50+pcs
  • Capacitor Disco Cerâmico 22pF x 50V NPO – 25+pcs
  • Capacitor Disco Cerâmico 10nF x 50V – 14pcs
  • Capacitor Disco Cerâmico 33pF x 50V – 10pcs
  • Capacitor Disco Cerâmico 1nF – 5pcs
  • Capacitor Eletrolítico 330uF x 16V
  • Capacitor Eletrolítico 470uF x 16V – 20pcs
  • Capacitor Eletrolítico 1000uF x 16V
  • Capacitor eletrolitico 220uF x 10V – 20pcs
  • Capacitor eletrolitico 100uF x 10V
  • Capacitor eletrolitico 1uF x 50V – 25pcs
  • Capacitor eletrolitico 1uF x 63V – 20pcs
  • Capacitor eletrolitico 10uF x 25V – 25pcs
  • Capacitor eletrolitico 10uF x 16V – 21pcs
  • Capacitor eletrolitico 100uF x 10V – 8pcs
  • Capacitor eletrolitico 47uF x 25V – 20pcs
  • Capacitor eletrolitico 100uF x 16V – 23pcs
  • Capacitor poliéster 1nF x 100V
  • Capacitor poliéster 100nF x 100V
  • Capacitor poliéster 100nF x 250V
  • Capacitor poliéster 100nF x 400V
  • Capacitor poliéster 1uF x 250V
  • Capacitor eletrolítico 2.2uF x 100V
  • Capacitor eletrolítico 3.3uF x 250V
  • Capacitor eletrolítico 47uF x 350V
  • Capacitor eletrolítico 2200uF x 50V
  • Capacitor eletrolítico 470uF x 63V
  • Capacitor eletrolítico 100uF x 63V 1pcs
  • Capacitor eletrolítico 1000uF x 50V 1pcs
  • Capacitor eletrolítico 3300uF x 6.3V (caneca grande)
  • Capacitor eletrolítico 2200uF x 6.3V
  • Capacitor eletrolítico 1800uF x 6.3V
  • Capacitor eletrolítico 1500uF x 6.3V
  • Capacitor eletrolítico 470uF x 63V
  • Capacitor poliéster 220nF x 250V
  • Capacitor poliéster 220nF x 630V
  • Capacitor poliéster 470nF x 630V
  • Capacitor 22nF 250v 2pcs
  • Capacitor eletrolítico 470uF x 400V diâmetro 35mm 8pcs
  • Capacitor eletrolítico 2500uF x 50V diâmetro 30mm 4pcs
  • Capacitor eletrolítico 5000uF x 35V diâmetro 30mm 7pcs
  • Capacitor eletrolítico 100uF x 100V diâmetro 30mm 2pcs
  • Capacitor eletrolítico 370uF x 400V diâmetro 30mm 3pcs
  • Capacitor eletrolítico 220uF x 400V diâmetro 25mm 2pcs
  • Capacitor eletrolítico 470uF x 200V diâmetro 35mm 1pcs

Fusíveis e acessórios

  • Porta Fusível F103C Com Fio Para Fusível Pequeno 5x20mm
  • Fusível de Vidro (20AG) 5A
  • Fusível de Vidro (20AG) 1,0A
  • Fusivel de Vidro (20AG) 0,3A
  • Fusivel de Vidro (20AG) 0,2A
  • Fusível de Vidro (20AG) 0,1A

Espaguete Termo-Retrátil (unidade: metro)

  • Espaguete Termo-Retrátil Diametro 1,5mm Preto
  • Espaguete Termo-Retrátil Diametro 1,5mm branco
  • Espaguete Termo-Retrátil Diametro 1,5mm amarelo
  • Espaguete Termo-Retrátil Diametro 1,5mm vermelho
  • Espaguete Termo-Retrátil Diametro 1,5mm azul
  • Espaguete Termo-Retrátil Diametro 1,5mm verde
  • Espaguete Termo-Retrátil Diametro 2,5mm Preto
  • Espaguete Termo-Retrátil Diametro 2,5mm branco
  • Espaguete Termo-Retrátil Diametro 2,5mm amarelo
  • Espaguete Termo-Retrátil Diametro 2,5mm vermelho
  • Espaguete Termo-Retrátil Diametro 2,5mm azul
  • Espaguete Termo-Retrátil Diametro 2,5mm verde
  • Espaguete Termo-Retrátil Diametro 4,5mm Preto
  • Espaguete Termo-Retrátil Diametro 6mm preto
  • Espaguete Termo-Retrátil Diametro 7mm preto
  • Espaguete Termo-Retrátil Diametro 8mm preto
  • Espaguete Termo-Retrátil Diametro 9mm preto
  • Espaguete Termo-Retrátil Diametro 10mm preto
  • Espaguete Termo-Retrátil Diametro 12mm preto
  • Espaguete Termo-Retrátil Diametro 15mm preto
  • Espaguete Termo-Retrátil Diametro 20mm preto
  • Espaguete Termo-Retrátil Diametro 25mm preto
  • Espaguete Termo-Retrátil Diametro 35mm preto
  • Espaguete Termo-Retrátil Diametro 45mm preto

Cabinho

Todos a 30 centavos por metro. Pedido mínimo de 50m. Posso vender em quantidades menores se o resto do pedido for grande.

  • Cabinho Flexível Amarelo 0,1mm 28 AWG (Metro)
  • Cabinho Flexível Laranja 0,1mm 28 AWG (Metro)
  • Cabinho Flexível Verde 0,1mm 28 AWG (Metro)
  • Cabinho Flexível Preto 0,1mm 28 AWG (metro)
  • Cabinho Flexível Marrom 0,1mm 28 AWG (metro)
  • Cabinho Flexível Vermelho 0,1mm 28 AWG (metro)
  • Cabinho Flexível Violeta 0,1mm 28 AWG (metro)
  • Cabinho Flexível Branco 0,1mm 28 AWG (metro)
  • Cabinho Flexível Cinza 0,1mm 28 AWG (metro)

Plug P4 2,1×5,5x10mm Com Rabicho

DIAC DB3 (DB-3)

Resistor

  • Resistor de 100R Carbono 5% 1/4W
  • Resistor de 220R Carbono 5% 1/4W
  • Resistor de 270R Carbono 5% 1/4W
  • Resistor de 330R Carbono 5% 1/4W
  • Resistor de 470R Carbono 5% 1/4W
  • Resistor de 1K Carbono 5% 1/4W
  • Resistor de 1K5 Carbono 5% 1/4W
  • Resistor de 2K2 Carbono 5% 1/4W
  • Resistor de 3K3 Carbono 5% 1/4W
  • Resistor de 4K7 Carbono 5% 1/4W
  • Resistor de 10K Carbono 5% 1/4W
  • Resistor de 22K Carbono 5% 1/4W
  • Resistor de 100K Carbono 5% 1/4W
  • Resistor de 1M Carbono 5% 1/4W
  • Resistor de 10M Carbono 5% 1/4W
  • Rede resistiva 4k7 ~ 920pcs
  • 2k2
  • 10k 50+pcs
  • 15k ~100pcs
  • 100R 1/4
  • 150R ~50pcs
  • 160k (ou 150k) – milhares
  • Trimpot Multivoltas 3296W 10K
  • Trimpot 1k
  • Trimpot 4k7
  • Trimpot 100k
  • Trimpot 470k

Circuitos integrados

  • LM393 – 5pcs
  • LM324N – 5pcs
  • LM386 – 16pcs
  • LM555 – 11pcs
  • NE555 – 40pcs
  • LM741 – 8pcs
  • MCP23017-E/SO – i2C 16 bits SMD – 6pcs
  • MCP23017-E/SP – i2C 16 bits – 2pcs
  • SN74AHC125N – 10pcs
  • HEF4050BP – 20pcs – Entre outras finalidades, pode ser usado como Level Shifter para conectar o Arduino (5V) a módulos de 3.3V, como o display Nokia, leitores SD, etc.
  • MT8870DE – 25pcs – Decodificador DTMF;
  • DS1307 – 10pcs – RTC;
  • MAX7219 – 15pcs – Controlador de displays de 7 segmentos e matrizes de LED;
  • MSGEQ7 – 5pcs
  • PCF8574P – 13pcs – I2C 8 bits;
  • L293 – driver para motor – 7pcs
  • ULN2003 – 5pcs

Soquetes DIP

  • 8 pinos – 11pcs
  • 16pinos – 19pcs
  • 18 pinos – 20pcs
  • 20 pinos – >20pcs
  • 24 pinos – 20pcs

Portas seriais

  • MAX3232 19pcs – baixo consumo
  • MAX232 18pcs
  • hin232 3pcs
  • SN75176 6pcs – Differential Bus Transceiver (Rev. A) – Usado em RS485

Controle Remoto

  • HT12D 25pcs DECODIFICADOR para controle remoto
  • HT12E 25pcs CODIFICADOR para controle remoto
  • MC145027P 4pcs DECODIFICADOR para controle remoto
  • MC145028P 4pcs DECODIFICADOR  para controle remoto
  • MC145026P 5pcs CODIFICADOR  para controle remoto

SHIFT REGISTER (usados para ampliar a capacidade de I/O)

  • 74HC595 6pcs – 8-bit serial-in, serial or parallel-out shift register with output latches; 3-state
  • 74HC595 – 46pcs
  • 74HC597 3pcs – 8-bit shift register with input flip-flops
  • 74LS165 10pcs – 8-BIT PARALLEL-TO-SERIAL SHIFT REGISTER

Microcontroladores

  • AT90S2313-10P 16pcs
  • PIC16F628 5pcs
  • PIC16F876 5pcs
  • PIC12F675 2pcs

CIs Diversos

  • 4010 3pcs – Datasheet – Seis portas lógicas (buffers) não inversoras
  • 4013 2pcs – Datasheet – Flip-Flop Tipo D duplo
  • 4017 1pcs – Datasheet – Contador decádico Johnson de 5 estágios
  • 4020 1pcs – Datasheet – Contador binário de 14 estágios com entrada clock
  • 4050 – 25pcs
  • 4051 1pcs – Datasheet – Multiplexador/demultiplexador analógico de 8 canais
  • 4051 23pcs
  • 4052 8pcs – Datasheet – Multiplexador/demultiplexador diferencial analógico de 4 canais
  • 4067 5pcs – Datasheet – Multiplexador/demultiplexador analógico de 16 canais
  • 4067 4 pcs
  • 4093 – 25pcs
  • 4098 2pcs – Datasheet – Multivibrador monoestável duplo
  • CD40106 – 10pcs – Datasheet – Hex Schimitt Trigger
  • 40193 6pcs 4-bit up/down binary counter
  • 4510 – 21pcs
  • 4511 – 11pcs
  • DAC0800 2pcs
  • AD526 1pcs
  • OP07C 2pcs
  • 74LS00 – 25pcs
  • 74LS08 – 4pcs
  • 74LS04 8pcs – Datasheet – Seis portas lógicas (buffers) inversoras
  • 7404 3pcs – Datasheet – Seis portas lógicas (buffers) inversoras
  • 74LS138 5pcs – Datasheet – 1-of-8 decoder/demultiplexer
  • 74HC573 10pcs – Datasheet –  3-STATE Octal D-Type Latch
  • LM339N 7pcs Low Power Low Offset Voltage Quad Comparator
  • LM358AN  ~16pcs Low Power Dual Operational Amplifier
  • LM358P  50pcs Low Power Dual Operational Amplifier
  • ICL7107CPL 10pcs
  • LM386N ~17pcs – Amplificador de áudio
  • 24C64 7pcs – Eeprom
  • LM3914N 8pcs – Datasheet – Bargraph / VU Meter 

Kit de controle remoto infravermelho

infrared_remote_kit_IMG_1083_automalabs.com.br

Atenção

Ao trabalhar com o receptor IR, dois cuidados precisam ser tomados:

  • Providencie alimentação extra para o Arduino. Apenas alimentá-lo pela USB pode não ser suficiente;
  • Abrigue o receptor da luz ambiente. Faça com que ele fique “na sombra”. Iluminação fluorescente, principalmente eletrônica, pode interferir com o funcionamento do receptor. Perceba que em quase todo aparelho que usa IR o receptor fica oculto atrás de um “filtro” escuro e muitas vezes recuado. Isso é para evitar que ele veja a luz ambiente.

Nos dois casos acima, o sintoma de problemas é que o comando falha 50% das vezes ou mais.

Seu transmissor pode eventualmente ser entregue ainda com o isolador no compartimento de bateria. É uma pequena lâmina de plástico que fica saliente. Retire totalmente (pode jogar fora) para que a bateria faça contato. Isso é colocado na fábrica para evitar que a bateria descarregue se um botão ficar pressionado durante o transporte.

Para testar o transmissor, use uma câmera digital qualquer. Aponte o controle para a câmera e veja se o LED está acendendo quando você aperta um botão.

Tabela de códigos do transmissor (códigos NEC de 32 bits compatíveis com a biblioteca IRremote):

  • FFA25D = Power
  • FF629D = Mode
  • FFE21D = Mute
  • FF22DD = Play/Pause
  • FF02FD = Previous
  • FFC23D = Next
  • FFE01F = EQ
  • FFA857 = “-“
  • FF906F = “+”
  • FF6897 = 0
  • FF9867 = Repeat
  • FFB04F = USB/SD
  • FF30CF = 1
  • FF18E7 = 2
  • FF7A85 = 3
  • FF10EF = 4
  • FF38C7 = 5
  • FF5AA5 = 6
  • FF42BD = 7
  • FF4AB5 = 8
  • FF52AD = 9

O transmissor usa “repeat codes”. Para que o Arduino detecte que botão você apertou e segurou é necessário que seu sketch tenha decodificado com sucesso a primeira transmissão e ao receber os repeat codes “enxergue-os” como o código anterior. Sketches que não sabem lidar com repeat codes dirão que o código recebido é “FFFFFF”.

Explicando de outra forma:

Quando você aperta e segura um botão do remoto, ele transmite uma vez o código correspondente à tecla e depois fica transmitindo o “repeat code” até você soltar o botão. Se o arduino perder essa primeira transmissão, não há como ele identificar que botão você está segurando, por mais que você aponte para o receptor.

O que estou explicando aqui aplica-se ao transmissor fornecido no kit, que usa um protocolo parecido com JVC e NEC.

Datasheet do receptor IRM8601

IRM8601 - Infrared Remote Control Receiver
IRM8601 - Infrared Remote Control Receiver
IRM8601 - Infrared remote control receiver.pdf
242.4 KiB
846 Downloads
Detalhes...

Motor de passo 28BYJ-48 com placa driver

Vídeo usando a biblioteca accelstepper

Exemplo de utilização, sem bibliotecas, que dá um bom torque. No exemplo o driver deve ser conectado aos pinos 2, 4 6 e 8 do Arduino (mas quaisquer 4 pinos servem):

OBS: Meu exemplo é uma simplificação do exemplo encontrado nesta página


//declare variables for the motor pins
int motorPin1 = 2;    // 28BYJ48 pino 1
int motorPin2 = 4;    // 28BYJ48 pino 2
int motorPin3 = 6;    // 28BYJ48 pino 3
int motorPin4 = 8;    // 28BYJ48 pino 4
// Red    - 28BYJ48 pin 5 (VCC)

int motorSpeed = 0;     //variable to set stepper speed

////////////////////////////////////////////////////////
void setup() {
//declare the motor pins as outputs
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
}

/////////////////////////////////////////////////////////
void loop(){

motorSpeed = 1;  //scale potValue to be useful for motor
counterclockwise();  //go to the ccw rotation function

}

/////////////////////////////////////////////////////////
//set pins to ULN2003 high in sequence from 1 to 4
//delay "motorSpeed" between each pin setting (to determine speed)

void counterclockwise (){
// 1
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(motorSpeed);
// 2
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay (motorSpeed);
// 3
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(motorSpeed);
// 4
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
delay(motorSpeed);
// 5
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
delay(motorSpeed);
// 6
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, HIGH);
delay (motorSpeed);
// 7
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
delay(motorSpeed);
// 8
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
delay(motorSpeed);
}

Módulo display LCD 1602 serial I2C / TWI

Baseado em chip Philips PCF8574.

Endereço I2C: 0x27

Compatível com o modelo da DFROBOT. Biblioteca e exemplos:

http://www.robotshop.com/ProductInfo.aspx?pc=RB-Dfr-69

Backlight

O backlight pode ser controlado pelo software. Procedures backlight() e   noBackligth() da biblioteca.

O jumper serve para o controle externo do backlight. Com o jumper no lugar o backlight fica permanentemente ativo. Retirando o jumper, você pode conectar uma saída do microcontrolador para o controle do backlight.

Módulo de relês

O consumo de cada relê, de acordo com o datasheet, é de 71mA. Assim, o módulo de oito canais alcança 568mA com todos os relês ligados. Se você ligar apenas um de cada vez, pode operar o módulo sem problemas usando apenas a alimentação do arduino conectado a uma porta USB. Mas estranhos problemas podem acontecer se você tentar ligar vários relês ao mesmo tempo sem providenciar uma fonte adequada. Os problemas variam caso a caso, porque algumas portas USB são capazes de fornecer mais que 500mA e depende também do resto do consumo de seu projeto, mas o sinal mais comum de que você excedeu a capacidade de corrente é não ouvir mais os relês fecharem, ou ouvir apenas um som débil.

De uma forma ou de outra, mesmo que o consumo esteja dentro da capacidade do Arduino, é recomendável separar as fontes, porque o acionamento das bobinas provoca uma perturbação na alimentação que pode afetar de múltiplas maneiras o seu projeto.

Cada módulo de relês tem um header de três pinos para alimentação. A posição do header e do jumper nele depende do módulo, mas sempre são claramente rotulados:

  • Módulo de 8 canais: header do lado direito da placa. Posição correta do jumper: para a direita;
  • Módulo de 2 canais: header do lado esquerdo da placa. Posição correta do jumper: para a esquerda;

O jumper deve ser retirado para usar alimentação externa, mas nunca coloque na outra posição, pois isso deixa a alimentação (VCC e GND) em curto.

  • Sem jumper: Alimentação para os relês (5V) deve ser conectada a GND e JD-VCC. Ou você pode deixar assim para testar o seu programa sem acionar as cargas. Os LEDs acenderão, mas os relês permanecerão desligados;
  • Jumper entre JD-VCC e VCC: Relês alimentados pelo pino VCC do cabo principal (default);
  • Jumper entre GND e VCC: nunca faça isso!

A placa opera por sinal negativo em cada uma das entradas IN. Embora isso possa parecer estranho ou até ilógico para alguns, é muito comum em aplicações industriais. Os sensores de proximidade refletivos e indutivos que vendo, por exemplo, são todos com saída negativa. Esses sensores são chamados de “NPN” no jargão da indústria local.

Este é o esquema aproximado de cada seção dos módulos:

Como o sinal de ativação é negativo (LOW), cuidados especiais precisam ser tomados no setup e utilização. Exemplo de código:


int Relay = 3; //relê ligado ao pino 3

void setup()
{
/*É necessário que seja feito nesta ordem, ou o rele vai dar
  um "rebote" ao energizar e a cada reset do arduino*/
  digitalWrite(Relay, HIGH);  //Configura o default do pino como HIGH
  pinMode(Relay, OUTPUT);     //Configura o pino como saída
}
void loop()
{

          digitalWrite(Relay, LOW);    //Liga o relê
          delay(2000);
          digitalWrite(Relay, HIGH);   //Desliga o relê
          delay(2000);

}

Problemas comuns

Um ou mais relês não fazem barulho ou fazem um barulho muito mais baixo que o normal ao ligar

Verifique a fonte de alimentação. Ela não está fornecendo corrente suficiente.

O relê só liga quando eu mando desligar e vice-versa

O módulo opera com lógica negativa. Volte, releia o que foi explicado e estude o sketch de teste.

O arduino reseta quando mando ligar vários relês de uma vez, mesmo sem carga

Os relês já ligados desligam quando mando ligar vários relês de uma vez, mesmo sem carga

Você provavelmente está usando a mesma fonte que alimenta o Arduino para alimentar os relês e esta não aguenta o surto repentino de corrente. Alimente o módulo com uma fonte separada.

O arduino reseta quando mando ligar um relê com carga

Os relês já ligados desligam quando mando ligar um relê com carga

Em condições normais isso só ocorre se você está ligando uma carga que gera muito EMI, como um contactor. Você precisa providenciar filtros de EMI para sua carga. Esses filtros geralmente são compostos de um único capacitor ou de um conjunto resistor + capacitor em série (também chamado de filtro “snubber”).

Em anexo, cópia do datasheet do relê

Módulo RTC DS1307 com EEPROM I2C

A imagem abaixo mostra dois módulos iguais. Cada um com uma face da placa para cima.

E aqui está a documentação oficial

O endereço i2c do RTC é 0x68. Isso é definido no chip DS1307 e não pode ser configurado pelo fabricante do módulo, nem pelo usuário. A vantagem disso é que qualquer módulo RTC DS1307 substitui qualquer outro, sem precisar de configuração.

Funciona mesmo sem os resistores.
Funciona com a biblioteca RTCLib da Adafruit.
Para fazer o ajuste de data e hora com esta biblioteca, é preciso dar o seguinte comando no SETUP:

Execute apenas uma vez, depois remova ou comente o comando e grave o sketch de novo.

Equipado com memória I2C 24C32 de 32kbits (4KB). Datasheet.

A operação da EEPROM é independente do RTC. Lembre-se de que o Arduino tem uma EEPROM interna, por isso para usar a EEPROM do módulo é preciso usar rotinas feitas para acesso a EEPROM I2C, como esta.

Neste módulo é possível acrescentar um sensor de temperatura DS18B20. Mas não é lá grande vantagem, porque o DS18B20 não é i2C e vai requerer que você puxe mais um fio para o módulo. Além disso, você fica limitado a medir a temperatura nas proximidades do módulo.

Informações importantes sobre a operação com bateria

Segundo o datasheet do DS1307:

  • O RTC só está completamente funcional quando a tensão VCC é igual a 1.25 * Vbat (a tensão da bateria);
  • Quando VCC é menor que 1.25*Vbat mas ainda é maior que Vbat, o RTC ainda é alimentado por VCC, mas você já não pode ler ou gravar nele;
  • Quando VCC cai abaixo de Vbat+0.2V, o RTC entra em um modo de baixo consumo e passa a ser alimentado pela bateria;
  • Vbat precisa estar entre 2 e 3.5V para operação normal do RTC.

Este módulo foi projetado para usar uma bateria recarregável LIR2032, que completamente carregada chega a 4.2V e assim além de estar acima da tensão máxima de bateria para o DS1307, normalmente você precisaria fazer VCC ser 1.25*4.2= 5.25V para que ele funcionasse, o que é uma tensão “alta” e difícil de garantir. Para contornar esses problemas o projetista colocou um divisor de tensão entre a bateria e a entrada Vbat do DS1307 para que ele enxergue uma tensão menor. Com a bateria completamente carregada (4.2V) a tensão em Vbat, que você pode ler no terminal BAT de P1, é de cerca de 2.9V. Assim você precisa de um VCC de apenas 1.25*3 = 3,75V para operação total do RTC. Entretanto é recomendado alimentar o módulo sempre com 5V por causa dos componentes extras.

Um segundo problema criado por esse design é que se você quiser alimentar o módulo com uma bateria não-recarregável como a CR2032, com a bateria a 3V a tensão em Vbat será de 2.14V. Perigosamente perto do mínimo. Para fazer com que o módulo opere com a CR2032 você precisará eliminar o circuito de carga da bateria (basta remover D1) e o divisor de tensão (remova R4 e coloque um fio no lugar de R6).

O diagrama abaixo facilita a compreensão do que expliquei:

ds1307_module_TinyRTC_schematic_automalabs.com.br

A durabilidade estimada de uma bateria CR2032 decente alimentando sozinha o DS1307 é de mais de 10 anos. Segundo o datasheet do DS1307 são necessários 48mAh para isso e uma Energizer CR2032 alcança 240mAh. Isso torna a decisão de usar uma bateria recarregável no módulo bastante questionável, principalmente porque esses módulos costumam vir da China com baterias LIR2032 de baixíssima qualidade que descarregam completamente em alguns meses e depois não conseguem ser carregadas.  Eu comprei cerca de 130 módulos destes e só consegui salvar duas baterias.

Se você tiver uma fonte confiável de baterias CR2032 (que também costumam ser muito falsificadas) é melhor fazer a alteração no módulo para usá-las.

Dicas diversas

Relógio atrasando em grandes intervalos de uma vez

Talvez você tenha esquecido ativo no setup do sketch uma linha de código para inicializar a hora do RTC. Por exemplo, este é o método usado nos exemplos da RTClib:

rtc.adjust(DateTime(__DATE__, __TIME__));

__DATE__ e __TIME__ são substituídas automaticamente pela data e hora do seu computador no momento da compilação do programa e esses valores ficarão gravados no Arduino. O relógio parecerá funcionar bem enquanto energizado mas toda vez que o arduino conectado ao módulo for ligado ou resetado vai reconfigurar o relógio para esses valores. Se você estiver presente e observando a cada reset verá o relógio voltar sempre ao mesmo dia e horário e desconfiará da causa, mas se não estiver não perceberá o padrão e vai ficar propenso a confundir com um defeito.

Relógio congelado

Pode ter ocorrido o mesmo esquecimento do item anterior, mas em loop.