Preciso de um programa para acionar um servo motor pelo ldr
Tags:
#include <Servo.h>
int pinopot = A5; //Pino ligado ao LDR
int valorpot = 0; //Armazena valor lido do LDR, entre 0 e 1023
float luminosidade = 0; //Valor de luminosidade do led
Servo myservo;
void setup()
{
myservo.attach(9);
Serial.begin(9600); //Inicializa a serial
pinMode(pinopot, INPUT); //Define o pino do LDR como entrada
}
void loop()
{
// Le o valor - analogico - do LDR
valorpot = analogRead(pinopot);
// Converte o valor lido do LDR
luminosidade = map(valorpot, 0, 1023, 0, 255);
Serial.print("Valor lido do LDR : ");
// Mostra o valor lido do LDR no monitor serial
Serial.print(valorpot);
Serial.print(" = Luminosidade : ");
// Mostra o valor da luminosidade no monitor serial
Serial.println(luminosidade);
// Acende o led com luminosidade variável
if(valorpot > 960)
{
myservo.write(90);
delay(100);
}else{
myservo.write(0);
delay(100);
}
}
#include <SPI.h>
#include <MFRC522.h>
#include <LiquidCrystal.h>
#include <Servo.h>
#define SERVO 9 // Porta Digital 9 PWM
#define Luz_Fundo 7
#define SS_PIN 53
#define RST_PIN 8
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
char st[20];
Servo s; // Variável Servo
int pos; // Posição Servo
// sensor LDR
#define LDRSensor A0
int LDRValor = 0;
int LDRok = 0;
void setup(){
Serial.begin(9600); // Inicia a serial
SPI.begin(); // Inicia SPI bus
mfrc522.PCD_Init(); // Inicia MFRC522
Serial.println("Aproxime o seu cartao do leitor...");
Serial.println();
//Define o número de colunas e linhas do LCD:
lcd.begin(16, 2);
mensageminicial();
pinMode(Luz_Fundo,OUTPUT); //define o pino como saída
digitalWrite(Luz_Fundo,HIGH); // Liga a luz do display.
s.attach(SERVO);
Serial.begin(9600);
}
void loop(){
// Look for new cards
if ( ! mfrc522.PICC_IsNewCardPresent()){
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial()){
return;
}
//Mostra UID na serial
Serial.print("UID da tag :");
String conteudo= "";
byte letra;
for (byte i = 0; i < mfrc522.uid.size; i++){
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
conteudo.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
conteudo.concat(String(mfrc522.uid.uidByte[i], HEX));
}
Serial.println();
Serial.print("Mensagem : ");
conteudo.toUpperCase();
if (conteudo.substring(1) == "65 C1 20 29"){ //UID 1 - Chaveiro
Serial.println("Ola Alessandro !");
Serial.println();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Ola Alessandro !");
lcd.setCursor(0,1);
lcd.print("Acesso liberado!");
//abre o portão
s.write(0);
delay(3000);
//fecha o portão
while(LDRok == 0){
testeFechar();
}
LDRok = 0;
mensageminicial();
}
if (conteudo.substring(1) == "A0 69 41 63"){ //UID 2 - Cartao
Serial.println("Ola Cartao !!!");
Serial.println();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Ola Cartao !");
lcd.setCursor(0,1);
lcd.print("Acesso Negado !");
s.write(90);
delay(3000);
mensageminicial();
}
delay(1000);
}
void testeFechar(){
LDRValor = analogRead(LDRSensor);
if(LDRValor <=200){
s.write(0);
}else{
delay(2000);
s.write(90);
LDRok = 1;
}
}
void mensageminicial(){
lcd.clear();
lcd.print(" Aproxime o seu");
lcd.setCursor(0,1);
lcd.print("cartao do leitor");
}
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por