4
« -: Юни 13, 2015, 02:46:20 pm »
Ок, стана.Благодаря за помощта. Това е окончателният код:
#include <IRremote.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // стартира IR приемника
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
digitalWrite(6, HIGH);
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
digitalWrite(3, HIGH);
}
//----------------------------------------------- променливи за отчитане на включване(изключване)
int i1 = 0;
int i2 = 0;
int i3 = 0;
int i4 = 0;
int i5 = 0;
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
Serial.println(results.value);
irrecv.resume(); // приема стойността на следващия натиснат бутон
//--------------------------------------------- бутон 1
if(i1 == 0 && results.value == 3739558593)
{
digitalWrite(6, LOW);
i1 = 1;
}
else if(i1 == 1 && results.value == 3739558593)
{
digitalWrite(6, HIGH);
i1 = 0;
}
//--------------------------------------------------- бутон 2
else if(i2 == 0 && results.value == 1868133565)
{
digitalWrite(5, LOW);
i2 = 1;
}
else if(i2 == 1 && results.value == 1868133565)
{
digitalWrite(5, HIGH);
i2 = 0;
}
//--------------------------------------------------- бутон 3
else if(i3 == 0 && results.value == 2557457189)
{
digitalWrite(4, LOW);
i3 = 1;
}
else if(i3 == 1 && results.value == 2557457189)
{
digitalWrite(4, HIGH);
i3 = 0;
}
//-------------------------------------------------- бутон 4
else if(i4 == 0 && results.value == 3419589885)
{
digitalWrite(3, LOW);
i4 = 1;
}
else if(i4 == 1 && results.value == 3419589885)
{
digitalWrite(3, HIGH);
i4 = 0;
}
//-------------------------------------------------- Изключва всички
else if(i5 == 0 && results.value == 3001999165)
{
digitalWrite(6, HIGH);
i1 = 0;
digitalWrite(5, HIGH);
i2 = 0;
digitalWrite(4, HIGH);
i3 = 0;
digitalWrite(3, HIGH);
i4 = 0;
}
}
}