IR remote т светодиод.
- Войдите на сайт для отправки комментариев
Сб, 31/01/2015 - 21:22
Здравствуйте. Имеется код. В нём по нажатию одной кнопки включается светодиод, по нажатию другой - выключается. Что на что поменять или что добавть чтоб это всё происходило от одной кнопки ? Просьба конкретно указать как надо сделать.
#include <IRremote.h>
int RECV_PIN = A0; //вход ИК приемника
IRrecv irrecv(RECV_PIN);
decode_results results;
int LED = 11;
void setup()
{
irrecv.enableIRIn(); // включить приемник
pinMode(LED, OUTPUT);
}
void loop() {
if (irrecv.decode(&results))
{
if (results.value == 0x866BB847) //код кнопки
{
digitalWrite(LED, HIGH);
}
if (results.value == 0x866B38C7)//код кнопки
{
digitalWrite(LED, LOW);
}
irrecv.resume();
}
}
digitalWrite(LED, !digitalRead(LED));Вроде так. Это 21 строка.
Строки 23-26 выкинуть. Вместо 26 добавить delay(500);
Спасибо, работает. А ещё вопрос, а если испоьзовать вместо светодиода модуль реле для управление какими-либо нашрузками, что-то менять надо ?
Спасибо, работает. А ещё вопрос, а если испоьзовать вместо светодиода модуль реле для управление какими-либо нашрузками, что-то менять надо ?
Если модуль для дуины, то нет. Если просто реле, то транзисторный ключ.
Да, модуль типо такого. (Если картинку нужно убрать под спойлер, извините, не получилось.)
Входы in1, in2. VCC - 5в, но лучше от отдельного источника питания. GND источника и дуины соединить. Управление возможно инверсное, надо пробовать.
Чтоб не создавать тему, решил написать тут.
Решил подключить Siemens A70 у китайсткой меге по этой статье. http://lukjanow.ru/2012/04/send-sms-arduino-siemens-s45/
Столкнулся со следующими проблемами:
Этот код, для старой версии ардуино и пишет: Начиная с версии Arduino 1.0, дескриптор 'BYTE' больше не поддерживается. Пожалуйста, используйте Serial.write() вместо него. Помогите изменить.
#include <NewSoftSerial.h> #include <string.h> NewSoftSerial mySerial(2, 3); #define num_to_char(number) ((number) < 10 ? \ ('0' + (number)) : \ (('A' - 10) + (number)) ) #define first_four(byte) (0x0F & (byte)) #define last_four(byte) ((0xF0 & (byte)) >> 4) #define hexdump_a(byte) num_to_char( last_four(byte)) #define hexdump_b(byte) num_to_char(first_four(byte)) char inData[100]; char unitID_in[10]; char telnumb_in[14]; char textsms_in[100]; void setup() { Serial.begin(9600); Serial.println("Go SMS Send"); mySerial.begin(9600); } void loop() { int i=0; char buffer[100]; //если есть данные - читаем if(Serial.available()){ delay(100); //загоняем прочитанное в буфер while( Serial.available() && i< 99) { buffer[i++] = Serial.read(); } //закрываем массив buffer[i++]='\0'; } //если буфер наполнен отправляем смс if(i>0){ //разбираем буфер на части отделенные запятой через сериал монитор отправляем - sms,19731429764F4,text sms sscanf(buffer, "%[^','],%[^','],%[^',']", &unitID_in, &telnumb_in, &textsms_in); if ((String)unitID_in == "sms"){ //определяем команду отправки смс char *indata=textsms_in; send_sms(indata); unitID_in [0] = '\0'; telnumb_in [0] = '\0'; } } } void send_sms(char *data) { size_t data_length, x; char c, l; long i; long n; data_length = strlen(data); i = data_length * 7; if (i & 0x07) i = (i & ~0x07) + 0x08; i = i / 8; mySerial.println("AT+CMGF=0"); delay(50); mySerial.print("AT+CMGS="); delay(50); mySerial.println(i + 14); delay(50); mySerial.print("0011000B9"); delay(5); mySerial.print(telnumb_in); delay(5); mySerial.print("0000AA"); hexdump_byte(data_length & 0xFF); l = 0; n = 0; for (x = 0; x < data_length; x++) { if (data[x] == '$') data[x] = 0x02; n |= (data[x] & 0x7F) << l; l += 7; if ( l >= 8 ) { hexdump_byte(n & 0xFF); l -= 8; n >>= 8; } } if (l != 0) { hexdump_byte(n & 0xFF); } mySerial.write(26); } void hexdump_byte(unsigned char byte) { mySerial.print(hexdump_a(byte), BYTE); mySerial.print(hexdump_b(byte), BYTE); }Вторая проблемма в том, что у моего телефона контакты Tx Rx распологаются немного по другому, распиновку я нашёл (думаю это ничего страшного, они же всё равно остались Tx и Rx :) ), и я не понимаю, куда их подключить к самой ардуине.
Помогите пожалуйста.
Лучше создайте отдельную тему, я вам в этом ничем не помогу, а заглянет ли кто сюда, это вопрос.