Ir ao conteúdo
  • Cadastre-se

andre graes

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. boa noite! sou aluno de automação indutrial pelo SENAI e estou desenvolvendo um projeto de aula que consiste em um sistema no qual existem 3 LDRs e 4 LEDs. Três LEDs deverão responder de acordo com a incidência de iluminação do seu respectivo LDR e o 4o LED deverá responder de acordo com a média de leitura dos 3 LDRs, sempre no sistema quanto mais luz menos brilho e não simplesmente acende/apaga. Bom, pesquisando pela internet, consegui fazer o sistema funcionar com um LED e um LDR, mas não consigo implementar mais LEDs/LDRs. Como sou bastante iniciante em programação, acredito que esteja sendo ingênuo na lógica do código. O código que está funcionando para 1 LED e 1 LDR: /* ***Arduino + LDR*** José Maria DVD */ int pinoLED = 9; // pino digital 9 int pinoLDR = 5; // pino analógico 5 int LDR = 0; // receberá o valor do LDR int LED = 0; // valor do LED void setup() { Serial.begin(9600); } void loop(){ //O valor lido da porta será no intervalo (0 a 1023) LDR = analogRead(pinoLDR); //Mostra na serial Serial.print("LDR = "); Serial.println(LDR); //Ajuste de valores para um melhor filtro if(LDR > 600) LDR = 600; else if(LDR < 100) LDR = 100; //Tranforma uma escala de valores em outra (255 a 0). LED = map(LDR, 100, 600, 255, 0); analogWrite(pinoLED, LED); delay(50); } o código para 2 LEDs e 2 LDRs que não funciona (o segundo LED não faz nada): int pinoLED1 = 9; // pino digital 9 int pinoLED2 = 10; int pinoLDR2 = 4; int pinoLDR1 = 5; // pino analógico 5 int LDR1 = 0; // receberá o valor do LDR int LDR2 = 0; int LED1 = 0; // valor do LED int LED2 = 0; void setup() { Serial.begin(9600); } void loop(){ //O valor lido da porta será no intervalo (0 a 1023) LDR1 = analogRead(pinoLDR1); LDR2 = analogRead(pinoLDR2); //Mostra na serial Serial.print("LDR1 = "); Serial.println(LDR1); Serial.print("LDR2 = "); Serial.println(LDR2); //Ajuste de valores para um melhor filtro if(LDR1 > 600) LDR1 = 600; else if(LDR1 < 100) LDR1 = 100; //Tranforma uma escala de valores em outra (255 a 0). LED1 = map(LDR1, 100, 600, 255, 0); analogWrite(pinoLED1, LED1); delay(50); if(LDR2 > 600) LDR2 = 600; else if(LDR2 < 100) LDR2 = 100; LED2 = map(LDR2, 100, 600, 255, 0); analogWrite(pinoLED2, LED2); delay(50); } Em anexo envio os prints do circuito que montei pelo simulador. Agradeço qualquer tipo de ajuda iluminatti.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...