Shield V1 multifunções
Características
Shield V1 multifunções
Compatível com as principais placas controladoras do mercado, como a Arduino UNO R3 e a Mega 2560 R3.
Utiliza um indicador LED de dois canais para mostrar o estado de trabalho programado, de forma a ser modelado de forma correta.
Completa a experiência de interrupção externa através de um keyswitch de dois canais.
Um botão de reset.
Pode medir a temperatura e humidade com o sensor DHT11.
Utiliza um potenciómetro giratório para as entradas analógicas.
Produz alarme e som através do módulo buzzer passivo.
LED full-color.
Utiliza um photovaristor para detetar o brilho da luz.
Faz experiências de medição de temperatura com o sensor LM35D.
Deteta a receção de infravermelhos através de um recetor infravermelho.
Portas digitais de dois canais: D7, D8.
Porta analógica de um canal: A3.
Uma interface IIC.
Uma porta serial TTL.
#include
#include
dht11 DHT;
#define DHT11_PIN 4
//buzzer pin
int buzzer = 5;
//button pins
int KEY2 = 2;
int KEY3 = 3;
//pin definition of flowing light
int led5 = 13;
int led4 = 12;
int led3 = 11;
int led2 = 10;
int led1 = 9;
int RECV_PIN = 6; //define input pin on Arduino
IRrecv irrecv(RECV_PIN);
decode_results results;
char i=0,flag=2;
void setup ()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
attachInterrupt(0, falling0, FALLING);
attachInterrupt(1, falling1, FALLING);
pinMode(buzzer,OUTPUT);
digitalWrite(buzzer,HIGH);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
pinMode(led5,OUTPUT);
for(char i=9;i<14;i++)
digitalWrite(i,LOW);
}
void loop()
{
if(flag==0)
{
buzzer_(); //testing buzzer
led_display(); //testing LED
}
if(flag==1)
{
Serial.println("status, Hum(%), Tem(C) analog_val light_val lm35_val");
DHT11();
Serial.print(" ");
analog(); //testing analog input
Serial.print(" ");
Light();
Serial.print(" ");
LM35();
Serial.println(" ");
delay(800);
}
if(flag!=0 & flag!=1)
{
if (irrecv.decode(&results))
{
Serial.println(results.value, HEX);
irrecv.resume(); // Receive the next value
}
}
}
void DHT11()
{
int chk;
chk = DHT.read(DHT11_PIN); // READ DATA
switch (chk)
{
case DHTLIB_OK:
Serial.print("OK ");
Serial.print(DHT.humidity,1);
Serial.print(" ");
Serial.print(DHT.temperature,1);
break;
case DHTLIB_ERROR_CHECKSUM:
Serial.print("Checksum error ");
break;
case DHTLIB_ERROR_TIMEOUT:
Serial.print("Time out error ");
break;
default:
Serial.print("Unknown error ");
break;
}
}
void buzzer_(void)
{
char i;
for(i=0;i<80;i++)// output a frequency sound
{
digitalWrite(buzzer,LOW);// sound
delay(1);//delay1ms
digitalWrite(buzzer,HIGH);//not sound
delay(1);//ms delay
}
for(i=0;i<100;i++)// output a frequency sound
{
digitalWrite(buzzer,LOW);// sound
digitalWrite(buzzer,HIGH);//not sound
delay(2);//2ms delay
}
}
void led_display()
{
digitalWrite(led1,HIGH);
delay(500);
digitalWrite(led1,LOW);
digitalWrite(led2,HIGH);
delay(500);
digitalWrite(led2,LOW);
digitalWrite(led3,HIGH);
delay(500);
digitalWrite(led3,LOW);
digitalWrite(led4,HIGH);
delay(500);
digitalWrite(led4,LOW);
digitalWrite(led5,HIGH);
delay(500);
digitalWrite(led5,LOW);
}
void analog()
{
int val;
val=analogRead(A0);
Serial.print(val);
}
void Light()
{
int val;
val=analogRead(A1);
Serial.print(val);
}
void LM35()
{
int val;
val=analogRead(A2);
Serial.print(val);
}
void falling0()
{
flag=0;
}
void falling1()
{
flag=1;
}