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: 2817

Anexos

Responder esta

Respostas a este tópico

Oi Carlos, para facilitar, em que link voce baixou os arquivos?

Rui

Nao entendi, Rui, sao arquivos meus do meu pc.

Oi Carlos.

Desculpe, eu não fui claro.

Eu conheço a plataforma PIC e talvez consiga te ajudar em fazer a mesma aplicação para o Arduino.

Eu pedi link do site de onde voce baixou os arquivos que postou, ou então me diga o que os LEd;s devem fazer e se possivel o esquema de ligação deles.

Rui

Posta aqui o circuito, tenho mini para venda no ML com preço campeão. 

Vamos ver o que dá para fazer com o circuito,

Nos diga se você quer sequencial, acende apaga, o que vai querer, se possivel a sequencia, enfim todas informações possíveis

J.Antonio

Ola Joao Antonio

Na resposta do Rui esta o Esquema e o codigo, 

Sim, é acende apaga.

Eu coloquei todos os arquivos( programa, esquema e simulado no proteus) porque nao aparecem, como fazo para por arquivos aqui?

Obrigado.

Ola Rui,

Esse circuito eu montei pegando rotinas de varios programas, entao nao tem um site especifico, sao varios. E tentei o mesmo com Arduino mas nao consegui por isso peço ajuda.

#include <16f877a.h> //Anexa ao programa o arquivo 16F877A.h
#use delay(clock=4000000) //Utiliza um clock de 4MHz para o para o microcontrolador
#fuses NOPROTECT //Dispositivo sem proteção para leitura da eeprom
#fuses NOWDT //Watch dog desabilitado
#fuses NOLVP //Gravação em alta tensão desligada
#fuses RC
#fuses NOBROWNOUT //Não resseta o chip se a tensao cair abaixo de 4V

#include <flex_lcd.c>

int16 tempo = 100;

//O programa

void main ()
{

output_low (PIN_B1);
lcd_init();
setup_adc_ports (NO_ANALOGS);
setup_adc (ADC_OFF);
setup_psp (PSP_DISABLED);
setup_spi (SPI_SS_DISABLED);
setup_timer_0 (RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1 (T1_DISABLED);
setup_timer_2 (T2_DISABLED, 0, 1);
setup_comparator (NC_NC_NC_NC);
setup_vref (FALSE);
output_c(0b00000000);
output_d(0b00000000);

lcd_putc("\f LED SEQUENCIAL");
printf(lcd_putc, "\nTEMPO=>%lums ", tempo);

while(true){

if(input(pin_a1)) //Se o pino RA1 colocado em nivel alto aumenta o tempo
{
tempo = tempo+50;
if (tempo >=15000)tempo = 15000; //limite maximo de tempo 15s
printf(lcd_putc, "\nDELAY=>%lums ", tempo);
delay_ms(250);
}

if(input(pin_a2)) //Se o pino RA2 colocado em nivel alto diminui o tempo
{
tempo = tempo-50;
if (tempo <= 50)tempo = 50; //Limite minimo de tempo 50ms
printf(lcd_putc, "\nDELAY=>%lums ", tempo);
delay_ms(250);
}

if(input(pin_a0)) //Se o pino RA0 for colocado em nível alto a sequência terá iníci
{
output_c(0b00000001);
delay_ms(tempo);
output_c(0b00000010);
delay_ms(tempo);
output_c(0b00000100);
delay_ms(tempo);
output_c(0b00001000);
delay_ms(tempo);
output_c(0b00010000);
delay_ms(tempo);
output_c(0b00100000);
delay_ms(tempo);
output_c(0b01000000);
delay_ms(tempo);
output_c(0b10000000);
delay_ms(tempo);
output_c(0b00000000);
output_d(0b00000001);
delay_ms(tempo);
output_d(0b00000010);
delay_ms(tempo);
output_d(0b00000100);
delay_ms(tempo);
output_d(0b00001000);
delay_ms(tempo);
output_d(0b00010000);
delay_ms(tempo);
output_d(0b00100000);
delay_ms(tempo);
output_d(0b01000000);
delay_ms(tempo);
output_d(0b10000000);
delay_ms(tempo);
output_d(0b00000000); //Envia 0 para para todas as portas e os LEDS ficarão apagados
delay_ms(tempo);
}
}
}

Oi Carlos,

com o esquema já resolve.

O esquema mostra um LCD e 15 LED's na saída.

Cada LED é ativado independente.

Voce precisa de 15 LEDS?

Precisa também do display LCD?

 Estou perguntando por causa das porta do Arduino.

Vou fazer rodar em PIC, depois passo para Arduino.

Rui

Sim cada led é independente.

Na realidade eu to usando o pino 30 tbm, entao é 16 saidas.

Tenho q ter o lcd para poder ver o delay.

Carlos

Um pelo jeito então o mini não terá portas suficiente, acredito que nem o Uno, somente o Mega. Dê uma pesquisada em número de portas de cada Arduino.

de uma olhada nisto:

http://produto.mercadolivre.com.br/MLB-630822921-arduino-mini-5vcc-...

esta interface utiliza somente 2 fios do arduino para o controle do display.

abçs

Esse I2C só serve para  lcd?

Me parece q serve tbm para controlar 16 motores, pelo q vi, entao serve para 16 leds?https://www.youtube.com/watch?v=7MrJaA1GWDc

Carlos

OK,

Qual arduino voce pretende usar?  Uno?

Então o que voce acha de usar  um mini para o controle e LCD  + 2 CIs CD4017 para os LED's,

conforme sugere o José Antonio.

Rui

Rui pelo que entendi que você quer desenvolver é o seguinte:

1 mini + controladora do display I2C (vai usar somente 2 fios do mini) + 3 switchs (1 para inicio, 1 para aumentar e 1 para diminuir o delay), + 2 CIs CD4017 ? Com isto você vai precisar de ==2+3+2==7 portas do mini, dá sossegado.

É isto mesmo Carlos que você precisa ? Agora uma pergunta que não quer calar. 16 canais ? tem esta necessidade ? não quer ligar estes leds de outra maneira ?  

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço