Buscar

ENTRADAS ANALÓGICAS - PROJETO 1 - LDR

Prévia do material em texto

ENTRADAS ANALÓGICAS - LDR
Experimento 1 - “Theremin” com LDR e potenciômetro
Material necessário:
· Arduino UNO + cabo USB + computador
· Potenciômetro de qualquer valor (ex: 10k, 100k)
· Resistor de 1k ohms
· LDR
· Alto-falante
· Protoboard, fios e jumpers
O circuito abaixo usa duas entradas analógicas. Uma para obter a leitura de luz, e a outra para obter a posição do potenciômetro que será usada para especificar um intervalo de tempo. A quantidade de luz no LDR irá variar a tensão sobre o resistor de 1k (e consequentemente no pino A0). O mesmo ocorre no pino A1, que obtém seu valor do divisor de tensão formado pelo potenciômetro.
A saída PWM varia de 0 a 255, portanto em um circuito perfeitamente calibrado, dividiríamos o valor lido em qualquer uma das entradas analógica por 4 (1024/4 = 256) para usá-lo diretamente na saída. 
Teste a programação abaixo
#define FTE 12
#define LDR A0
#define POT A1
void setup() {} // pinMode é opcional com analogRead
void loop() {
 int luz   = analogRead(LDR);
 int pausa = analogRead(POT);
 delay(pausa * .25);
 int tom = luz * luz * luz / 16; // experimente outros valores
 tone(FTE, tom);
}
Atividade 1 – Implemente o Serial Monitor para verificar a saída do Sensor LDR
void setup() {
 Serial.begin(9600); //Para aparecer no Serial Monitor
 } 
void loop() {
 
 Serial.print("Saída do LDR: ");
 Serial.println(luz);
}
Atividade 2 – Implemente um sinalizador com LED para indicar a falta de LUZ.
Int led = 8;
void loop() {
 if (luz>0 && luz<300){
 digitalWrite(led, HIGH);
 }
 else{
 digitalWrite(led, LOW);
 }
FINAL
#define FTE 12
#define LDR A0
#define POT A1
int led = 8; // Para acender o LED quando faltar LUZ
void setup() {
 Serial.begin(9600); //Para aparecer no Serial Monitor
 pinMode (led, OUTPUT);
 } 
void loop() {
 int luz = analogRead(LDR);
 Serial.print("Saída do LDR: ");
 Serial.println(luz);
 if (luz>0 && luz<300){
 digitalWrite(led, HIGH);
 }
 else{
 digitalWrite(led, LOW);
 }
 int pausa = analogRead(POT);
 delay(pausa * .25);
 int tom = luz * luz * luz / 16; // experimente outros valores
 tone(FTE, tom);
}

Continue navegando