DIY USB-IR-mottagare (3 / 5 steg)
Steg 3: Att få tangentkoder för fjärrkontrollen
I denna del måste du se vad koden är "ansluten" till varje knapp på fjärrkontrollen. Vi måste göra detta, eftersom varje fjärrkontrollen använder andra koder för varje nyckel.
För att göra detta, använde jag den installationen och program av min tidigare instructables. Jag öppnade precis seriell bildskärmen för att se vilken kod var skicka. Om du inte har en arduino för att få koderna, kan du också använda den delen du just gjort. Detta är lite svårare, men det ger dig samma resultat.
Först måste du installera digiusb drivrutiner. Gå till denna länk och klicka på "Ladda ner zip" till höger. När du har laddat ner zip extraktet alla mappen "DigisparkExamplePrograms-master" till valfri katalog du gillar.
Gå till "DigisparkExamplePrograms-master / C + +/ DigiUSB Windows Driver /" och klicka på "installdriver".
När du har gjort det, måste du följa dessa instruktioner för att installera rätt styrelserna i arduino IDE.
Nu kopiera koden till ett nytt arduino projekt och ladda upp den till din digispark.
/*************************************
* Här koden är skriven av Laurens Wuyts
* För frågor: laurens.wuyts
*
*
* Mikrokontroller: ATtiny85
* Dev styrelsen: Digispark
*
*************************************/
#include < DigiUSB.h >
uint8_t situation = 0;
uint8_t START = 0;
uint8_t x = 0;
uint8_t BIT = 0;
uint8_t Id = 0;
uint8_t Id_inv = 0;
uint8_t Data = 0;
uint8_t Data_back = 0;
uint8_t Data_inv = 0;
uint8_t Repeat = 0;
uint8_t sended = 0;
uint16_t Time_old = 0;
uint16_t tid = 0;
uint16_t TimeDelta = 0;
void setup(void) {
attachInterrupt (0, IR_Read, faller);
pinMode(1,OUTPUT);
digitalWrite(1,LOW);
DigiUSB.begin();
}
void loop(void) {
IF(sended == 1) {
DigiUSB.println (Data_back, DEC);
sended = 0;
} annat {
DigiUSB.delay(10);
}
}
void IR_Read(void) {
digitalWrite(1,HIGH);
Tid = micros();
om (Time_old! = 0) {
TimeDelta = tid - Time_old;
om ((TimeDelta > 12000) & &(TimeDelta < 14000)) {
START = 1;
x = 0;
situationen = 1;
ID = 0;
Id_inv = 0;
Data = 0;
Data_inv = 0;
} else om ((TimeDelta > 10000) & &(TimeDelta < 12000)) {
situationen = 2; Upprepa
} else om ((TimeDelta > 1500) & &(TimeDelta < 2500)) {
situationen = 3; //"1"
BIT = 1;
} else om ((TimeDelta > 1000) & &(TimeDelta < 1500)) {
situationen = 3; //"0"
LITE = 0;
} annat situation = 5;
om (situationen == 3) {
om (x < 8) {
ID | = BIT;
om (x < 7) Id << = 1;
x ++;
} else om (x < 16) {
Id_inv | = BIT;
om (x < 15) Id_inv << = 1;
x ++;
} else om (x < 24) {
Data | = BIT;
om (x < 23) Data << = 1;
x ++;
} else om (x < 32) {
Data_inv | = BIT;
om (x < 31) {
Data_inv << = 1;
} annat {
/ * GÖRA NÅGOT HÄR * /
sended = 1;
Data_back = Data;
Upprepa = 0;
}
x ++;
}
} else om (situationen == 2) {
IF(REPEAT == 1) {
/ * GÖRA NÅGOT HÄR * /
/ * sended = 1; * /
} annat {
Upprepa = 1;
}
}
}
Time_old = tid;
digitalWrite(1,LOW);
}
När du har gjort det, gå till "DigisparkExamplePrograms-master/Python/DigiUSB/Windows /" och öppna "monitor.exe". I det här fönstret tangentkoden skrivs ut när du trycker på en knapp. Observera bara på knappen och sedan koden du ser. Du behöver dem senare.