A segunda foto, no arranjo indicado pelo seu amigo, cada perna do resistor está em uma fileira decontatos diferente, por isso não está mais em curto. Farei o projeto e devo postar hj msm, penso que nem deve demorar mt.
@sksdutra, os fios azuis estão ligados no anodo do LED, que é a perna mais curta do LED com o lado chanfrado.
Acho que a perna mais longa é o anodo, positivo, que deve ser ligado nas portas do Arduino.
@sksdutra catodo você quis dizer né? Se for é isso mesmo q falou, ligar na porta de 5v do Arduino, representado pelos fios marrons no circuito que eu montei, utilizando a faixa vermelha do protoboard.
Obrigado @Jack_Kun, fico no aguardo da sua montagem e teste e estou aqui por perto do computador pra ver sua mensagem assim que você terminar.
Montagem concluída. Segue o código fonte e um vídeo com o esquema funcionando. Algumas infos:
*Resistores usados nos leds: 330R e 470R, ambos funcionando perfeitamente.
LDR ligdo ao 5VCC, e ligado em série com um resistor de 51K, que por sua vez está ligado ao terra. Resistor de 100k não funciona, pq reduz muito a sensibilidade do circuito.
Caso o resistor em série com o LDR seja alterado para um valor menor que 51K, será necessário alterar o valor da constante Com_Luz,no código.
Caso tenha alguma outra dúvida, ou precise de ajuda na conversão do código fonte, é só falar. Estou à disposição.
Vídeo e código fonte: http://www.4shared.com/rar/iVbFpEewce/Projeto_LDR.html
Ah, o tudo preto no vídeo é um LDR mini, dentro de um tubo opaco. Eu montei apenas dois canais, pois era suficiente para testes, porém o código já inclui o terceiro.
o de 51k, como descrevi. Com ele é que obtive a leitura do AD de “60” para fazer o controle dos leds.
@Jack_Kun, gostaria de fazer uma pequena reunião por Skype pois já não sei mais o que eu poderia tentar para fazer o circuito funcionar como deveria. Troquei os resistores dos LEDs por 330 ohms e ainda não brilham com intensidade, o LED verde nem acende direito. Não tenho resistor de 51k para o LDR mas posso comprar amanhã. Eu só queria ter certeza de que isso é o último problema pra evitar de ter de ir várias vezes na loja. Por Skype eu mostraria já direto o que está acontecendo e poderíamos matar o problema todo com maior rapidez. Topa?
Meu nome lá é ricardodeabreu8.
Topo, sem prob> Só me dá 1hr, q agora vou jantar.
Ok, fico no aguardo.
Bem,já voltei. Estou tentando, mas seu skype não tá atendendo. Quanto vc tiver on, me chama no skype, vou estar por aqui.
Bom, o problema todo afinal era o código, que todos disseram estar correto! Como nos enganou este maldito! kkk Quem diria que um código errado faria os LEDs brilharem com intensidade mais fraca e fazer outros nem ligarem. Ainda tenho de analisar quais foram os erros de uma versão para outra mas com a autorização do nosso amigo @Jack_Kun disponibilizarei o código aqui para que outros possam estudar o que houve de errado e consigam reproduzir o experimento em suas casas. Obrigado à todos que ajudaram. Voltarei aqui com certeza para tirar outras dúvidas de projetos futuros.
int sensor_1 = 0;
int sensor_2 = 1;
int sensor_3 = 2;
int valorSensor_1 = 0;
int valorSensor_2 = 0;
int valorSensor_3 = 0;
//-----------------------------------
const int ledVerde_1 = 3;
const int ledVermelho_1 = 4;
//------------------------------------
const int ledVerde_2 = 5;
const int ledVermelho_2 = 6;
//------------------------------------
const int ledVerde_3 = 7;
const int ledVermelho_3 = 8;
void setup()
{
Serial.begin(9600);
pinMode(ledVerde_1,OUTPUT);
pinMode(ledVermelho_1,OUTPUT);
//------------------------------
pinMode(ledVerde_2, OUTPUT);
pinMode(ledVermelho_2,OUTPUT);
//----------------------------------
pinMode(ledVerde_3,OUTPUT);
pinMode(ledVermelho_3,OUTPUT);
}
void loop()
{
digitalWrite(ledVermelho_1,LOW);
digitalWrite(ledVerde_1,LOW);
//------------------------------------
digitalWrite(ledVermelho_2,LOW);
digitalWrite(ledVerde_2,LOW);
//-------------------------------------
digitalWrite(ledVermelho_3,LOW);
digitalWrite(ledVerde_3,LOW);
valorSensor_1 = 0;
valorSensor_1 = analogRead(sensor_1);
delayMicroseconds (10);
if (valorSensor_1 < 750)
{
digitalWrite(ledVermelho_1,HIGH);
digitalWrite(ledVerde_1,LOW);
}
else
{
digitalWrite(ledVerde_1,HIGH);
digitalWrite(ledVermelho_1,LOW);
}
//-------------------------------------------
valorSensor_2 = 0;
valorSensor_2 = analogRead(sensor_2);
delayMicroseconds (10);
if(valorSensor_2 < 750)
{
digitalWrite(ledVermelho_2,HIGH);
digitalWrite(ledVerde_2,LOW);
}
else
{
digitalWrite(ledVermelho_2,LOW);
digitalWrite(ledVerde_2,HIGH);
}
//-----------------------------------------
valorSensor_3 = 0;
valorSensor_3 = analogRead(sensor_3);
delayMicroseconds (10);
if(valorSensor_3 < 750)
{
digitalWrite(ledVermelho_3,HIGH);
digitalWrite(ledVerde_3,LOW);
}
else
{
digitalWrite(ledVermelho_3,LOW);
digitalWrite(ledVerde_3,HIGH);
}
Serial.println(valorSensor_1);
Serial.println(valorSensor_2);
Serial.println(valorSensor_3);
delay(30);
}vf
Eu passei os olhos por cima do código e vi algumas coisas erradas logo de cara, como aquelas portas em conflito. Se fosse testado, acabaríamos por verificar mais problemas, mas o fato é que eu tenho tão pouco tempo que não testei.
Um circuito incorreto, acaba por dar problema também, da forma que você postou na última foto, dependendo de onde seria ligado ao anodo e o catodo, o sistema também falharia. Enfim, não era apenas código, haviam problemas no circuito, principalmente nos das primeiras imagens.
Bem, e no fim percebo algo interessante: Portar código entre PIC18F4550 e o Arduino é bem tranquilo. Pensei q eu não saberia fazer o código do arduino por não ter um arduino, mas fazendo o código para o pic depois ficou tranquilo de porta-lo. Uma dica para o ricardo: no lugar do valor de 750 dos if’s use uma “Const int” para facilitar na hora de ajustar o valor. Ex.: const int com_luz = 750;
if(valorSensor_1 > com_luz);
Tb fica mais bonitinho o código, xD.