Stap 4: gebouw
Dus na het testen van de code is het tijd om hele testschema naar permanente Raad. Ik heb FQP50N06 N-kanaal MOSFET gebruikt om het PWM-signaal van Arduino pin 3 versterken.
Ik gebruikte vrouwelijke header mount Arduino aan de perfboard zodat ik de Arduino verwijderen kan als er iets slecht gaat in de toekomst.
Ik vertrouw niet sensor, want dit is de tweede keer, ik ben het opbouwen van dit project, dus ik ben opnieuw met behulp van dezelfde sensor voor 3 keer. Dus ik ben met behulp van vrouwelijke headers te koppelen van de sensor, zodat het elk moment vervangen worden kan. Ook kan het nuttig zijn om uit te breiden van de sensor voor het geval ik nodig aanpassingen.
Digitale pinnen van Arduino kunnen slechts behandelen 40mA en ik heb niet een transistor die kan omgaan met 500 mA huidige loting voor de groep van LED's, dus heb ik besloten met een N-kanaal MOSFET het PWM-signaal van Arduino pin 3 versterken.
Als de LED's hieronder 40mA die ze kunnen rechtstreeks worden aangesloten op digital pin van de Arduino zijn door toe te voegen 220ohms weerstand.
Ik ontwierp de lay-out in fritzing en de schema's om te solderen aan een perfboard gevolgd.
Voor draagbaarheid doel ik ben van plan te gebruiken 9v batterij voor het aandrijven van het apparaat door met rauwe pin van de Arduino te verbinden, maar ik ben bezorgd dat deze hoogvermogen LED's batterij snel kan afvoeren. Dus eerst zal ik dit apparaat gebruiken met batterij en markeren van de levensduur van de batterij als er redelijke dat ik zal blijven om te gebruiken op batterij zal anders ik overschakelen naar een muur adapter van ongeveer 9 volt. Dus ik heb ook twee mannelijke jumperpinnen toegevoegd aan boord aansluiten vormen draden van positieve en negatieve voeding.
Ik voegde ook een rode geleid met 220 ohm weerstand om aan te geven de activiteit van de arduino, volgende indrukken van een toets kan worden aanvaard nadat geleid is uitgeschakeld.
Dit project kan worden herbouwd voor elke installatie door gewoon wijzigen codes en als voorwaarde in de code van de Arduino.
Nu kan ik goede behuizing past alles mooi moet vinden.
#include <IRremote.h> const int RECV_PIN = 12; const int ACT_PIN = 11; int repeat = 3; unsigned long currcode; unsigned long prevcode; //settop box codes const unsigned long stpower = 0x11D9D02F; const unsigned long volumeup1 = 0x11D948B7; const unsigned long volumedown1 = 0x11D958A7; const unsigned long volumeup2 = 0x11D98E71; const unsigned long volumedown2 = 0x11D94EB1; //tv codes unsigned long tpower = 0x1CE338C7; unsigned long av = 0x1CE328D7; //soundbar codes unsigned long sbpower = 0x1100C; unsigned long aux = 0x11038; unsigned long volumeup = 0x11010; unsigned long volumedown = 0x11011; IRrecv irrecv(RECV_PIN); IRsend irsend; decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); pinMode(ACT_PIN, OUTPUT); irrecv.blink13(true); }void loop() { if (irrecv.decode(&results)) { if (results.decode_type != UNKNOWN ) { if (results.value != REPEAT ) { currcode = results.value; } else if (results.value == REPEAT ) { if (prevcode == volumeup1 || prevcode == volumeup2 || prevcode == volumedown1 || prevcode == volumedown2) { currcode = prevcode; } else { currcode = 0; } } if (currcode == stpower) { digitalWrite(ACT_PIN, HIGH); Serial.println("power"); irsend.sendNEC(tpower, 32); delay(500); irsend.sendRC6(sbpower, 20); delay(1500); irsend.sendNEC(av, 32); delay(500); digitalWrite(ACT_PIN, LOW); } else if (currcode == volumeup1 || currcode == volumeup2) { for (int i = 0; i < repeat; i++) { digitalWrite(ACT_PIN, HIGH); Serial.println("volumeup1"); irsend.sendRC6(volumeup, 20); delay(500); digitalWrite(ACT_PIN, LOW); } } else if (currcode == volumedown1 || currcode == volumedown2) { for (int i = 0; i < repeat; i++) { digitalWrite(ACT_PIN, HIGH); Serial.println("volumedown1"); irsend.sendRC6(volumedown, 20); delay(500); digitalWrite(ACT_PIN, LOW); } } else { //do nothing } } prevcode = currcode; irrecv.resume(); irrecv.enableIRIn(); //trust me this has to be done again } }