Saudaçoes,

Gostaria q alguem me ajudasse a mudar esse circuito de Pic para Arduino, no caso só mudar a programação, esse circuito irei usar no meu trabalho ja venho a uns 6 meses tentando, sou hobista e o que sei aprendi tentando  montar esse circuito.

No caso queria usar o Arduino Mini, pis vou precisar de no minimo 30 circuito.

Os leds sao só para facilitar a visao no proteus, o circuito vai trabalhar com 18v, mas essa parte depois dos leds ja esta resolvida com ULN2803.

Agradeceria muito pela ajuda.

Exibições: 2820

Anexos

Responder esta

Respostas a este tópico

Tivesse falado Carlos tinha comprado aqui em Campinas (deve estar entre 1,50 cada um e te enviado).

Mais como você está na capital vale a pena ir na Sta. Ifigênia se bem que componente eletrônico ali ficou apenas 2 lojinhas numa daquelas ruas laterais que corta. Já foi o tempo de componente na S.Ifigenia (oww saudades).

Boa noite, Jose

Sim, na rua Vitoria tem umas 3 lojas boas, na propria Sta. no numero 295 tem uns 4 andares só de componentes, mas os preços la estao caros mesmo, as vezes acha algo em conta.

Eu comprei umas placas no ML, Placa 74hc595 Registrador Shiftregister Breakout Arduino,

Por acaso vc tem algum tuto desse Mini q  comprei, pq tava olhando e ele é diferente dos outros.

Obrigado. 

Boa noite Rui,

Tentei simular esse novo programa no proteus e o que acontece:

Assim que liga ele ja inicia e nao para mais fica no loop constante, mesmo apertando as switch nao acontece nada.

Mas tudo bem, como vc disse q vai viajar, vou montar domingo aquele antigo sem o loop, como vc disse para tirar as linhas.

Obrigado e boa viajem 

Carlos

Carlos, 

utilizo o mesmo sem problemas.

Você sabe que para transferir os sketchs é necessário o conversor RFID Usb.

Não é sé ligar ele no PC ok. 

Olha ai as pinagens do bixim, ele é muito bom pq é pequeno e tem o mesmo numero de pinos do Uno,

Outra coisa vc viu o I2C barramento para display 16X2 usando só dois fios ? 

Cara este é show de bola, meus projetos agora só uso eles,

Fiz uma compra da China e ainda tenho ainda 5 dos 10 que comprei, 2 deles eu guardei para meu uso.

Valeu

Olá Jose,

Nao estou conseguindo gravar.

Erro: avrdude: stk500_getsync(): not in sync: resp=0x01

Me parece q nao esta havendo sincronização, nao esta reconhecendo o arduino, é isso?

Carlos

Jose e Carlos, bom dia.

Jose,

No seu texto, voce diz que este arduino mini necessita de um converssor RFID. Esta correto?

Carlos,

se esta dando erro no UPLOAD, verifique se voce definiu corretamente o Arduino e a Porta

Rui

Ps: Faltam os acentos, pois onde estou, o tablet nao tem.

Bom dia Rui,

Fiz só um teste de gravação no Mini (piscar um led),segui um tutorial da net, nao gravei o seu programa ainda, 

Bom dia, Rui e Jose.

Usei um uno, de um amigo,(nao quero gravar nada no Uno dele pois como nao sei nada ainda, tenho medo de prejudicar ele) me parece q o programa nao reconhece a placa Mini , vou passar hj na sta. comprar um Uno.

Obrigado.

P.S.  É meio complicado isso aqui as respostas e perguntas nao obedecem uma ordem, vc viu as alteraçoes q fiz no programa, Rui?

Abraço.

Bom dia pessoal, desculpem somente agora fui verificar os emails.

Seguinte o arduino mini não possui o chip para a comunicação placa x PC, já o arduino Uno já tem incorporado.

Para gravar os arduino mini você precisa da interface FTDI. Veja abaixo a foto.

O mini tem a vantagem de ocupar menos espaço, embora tenha o mesmo processador que o UNo. 

Abraços,


Bom dia Jose,

Usei um Uno para gravar.

Obrigado

Carlos,

se ainda der tempo amanhã dou uma olhada.

Rui

Ok, Rui

Mas nao se preocupe, por enquanto vou testando o antigo, ainda nao comprei os 595, Sao Paulo chove q é uma beleza, para sair só de barco mesmo, rsrsrs

Abraços.

Boa tarde, Rui

Andei modificando o programa(por intuito, rsrs), esta funcionando bem(no Proteus), a unica coisa é q quando ligo em vez de estar com 50ms ele aparece 49ms.

Estou mandando para vc ver.

Abraço

/* LED sequencial
Seguencia LEDs usando o CI 74HC595
O numero de saídas do 74HC595 és definido no valor do for do 2 loop
O valor deverá ser igual número de porta -1. Não tem limite de portas a serem usadas.
Os 74HC595 devem ser encadeados ligando a saída do pino 9 à entrada do próximo
no pino 14, e os pinos rst, clock, latch, ligados em paralelo.
Rui
*/
#include <LiquidCrystal.h>
#include <EEPROM.h>
word Tempo = 50; // Variável de 2 Bytes para guardar tempo de delay
// Switchs
int SW1 = 0; // Variável para guardar informação switch de incremetar tempo de delay
int SW2 = 0; // Variável para guardar informação switch de decrementar tempo de delay
int SW3 = 0; // Variável para guardar informação switch de inici da sequência
int analogPin0 = 0; // Porta analógica para SW1
int analogPin1 = 1; // Porta analógica para SW2
int analogPin2 = 2; // Porta analógica para SW3
// 74HC595
int const clock = 0; // Conectar ao pino 11 dos 74HC595
int const latch = 1; // Conectar ao pino 12 dos 74HC595
int const data = 2; // Conectar ao pino 14 dos 74HC595
int const rst = 3; // Conectar ao pino 10 dos 74HC595
// LCD
LiquidCrystal lcd(9, 8, 7, 6, 5, 4); // Ordem dos pinos RS EN D4 D5 D6 D7
// Pino LCD 4 6 11 12 13 14
// ********************************************************************
void setup() {
lcd.begin(16, 2); // Inicializa LCD
pinMode(clock,OUTPUT); // Port D2 saída
pinMode(latch,OUTPUT); // Port D3 saída
pinMode(data,OUTPUT); // Port D4 saída
pinMode(rst,OUTPUT); // Port D5 saída
}
// ********************************************************************
void loop()
{
Tempo = EEPROM.read(0);
Tempo = Tempo*2; //Tirei esse *2-------------------------------------------------------------------Modifiquei
lcd.setCursor(0, 0); // Posiciona curso do LCD posicão 1 (0) da linha 1 (0)
lcd.print("LED Sequencial");
lcd.setCursor(0, 1); // Posiciona curso do LCD posicão 1 (0) da linha 2 (1)
lcd.print("SW 1+ 2- 3 Start"); // Tirei("SW 1+ 2- 3 Start") e coloquei a variavel "Tempo"----------Modifiquei
do // Loop de teste dos switchs
{
digitalWrite(rst,LOW);
SW1 = analogRead(analogPin0); // read the input pin
SW2 = analogRead(analogPin1); // read the input pin
SW3 = analogRead(analogPin2); // read the input pin

if (SW1 <500) // verifica se o switch1 está apertado
{ // Se estiver..
lcd.setCursor(0, 1); // Posiciona curso do LCD posicão 1 (0) da linha 2 (1)
Tempo = Tempo + 50; // Incrementa variável tempo em 50
if (Tempo > 1000) Tempo = 1000; // Se variável tempo for maior que 1000, faça igual a 1000
lcd.print(" Delay de "); // Imprime no LCD
lcd.print(Tempo); // Imprime no LCD
lcd.print(" ms "); // Imprime no LCD
delay(500); // Tempo de display do tempo
EEPROM.write(0, Tempo/2); // Tirei "/2"---------------------------------------------------------------------Modifequei
}
if (SW2 <500) // verifica se o switch2 está apertado
{ // Se estiver..
lcd.setCursor(0, 1); // Posiciona curso do LCD posicão 1 (0) da linha 2 (1)
Tempo = Tempo - 50; // Decrementa variável tempo em 50
if (Tempo < 50) Tempo = 50; // Se variável tempo for menor que 50, faça igual a 50
lcd.print(" Delay de "); // Imprime no LCD
lcd.print(Tempo); // Imprime no LCD
lcd.print(" ms "); // Imprime no LCD
delay(500); // Tempo de display do tempo
EEPROM.write(0, Tempo/2); //Tirei /2 e coloquei a variavel "Tempo"-----------------------------------------Modifiquei
}
if (SW3 <500) // verifica se o switch3 está apertado
do // Se estiver..
{
digitalWrite(rst,LOW); // rest 74HC595
digitalWrite(rst,HIGH); //
digitalWrite(latch,LOW); // transfere dados dos regs para os latchs e saídas
digitalWrite(data,HIGH); // Data bit ON acende 1o. LED
digitalWrite(clock,HIGH); // Liga clock para entra dado
digitalWrite(clock,LOW); // Desiga clock
digitalWrite(data,LOW); // Data Bit OFF
digitalWrite(latch,HIGH); // Desatica transferencia
delay(Tempo); // Tempo de LED aceso

for (int i = 0; i<15; i++) // numeros de LED a serem acendidos, preencher com o valor de LED "COLOQUEI 16"-----Modifiquei
{ // Acende os outros LEDs
digitalWrite(latch,LOW); // transfere dados dos regs para os latchs e saídas
digitalWrite(clock,HIGH); // Liga clock para entra dado
digitalWrite(clock,LOW); // Desiga clock
digitalWrite(latch,HIGH); // Desatica transferencia
delay(Tempo); // Tempo de LED aceso
}
}while(1); // End do forever 2 //Tirei o "1" e coloquei "0"----------------------------------------------Modifiquei
}while(1); // End do forever 1
} // End loop

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço