TV volym Loudness Guard använder Arduino (4 / 4 steg)
Steg 4: Förbereda ARDUINO programmet
FJÄRR-KNAPPKOD och BIT
#define REMOTE_CODE din kod som returneras av verktyget IRrecvDump dekoder prefixet "0 x"
#define REMOTE_BIT din kod-datastorleken som returneras av verktyget IRrecvDump dekoder.
Arduino programmet fungerar för de flesta fjärrkontroller men du måste berätta det om din fjärrkontroll protokollet från den information du samlat i föregående steg när du avkodas din fjärrkontrollens knappar användande IRrecvDump nytta. Det är möjligt att göra remote val dynamiskt under körning så du behöver inte ändra och lägga upp koden. Jag kan göra detta i en senare version av denna gadget.
VOLYMNIVÅN TRÖSKEL
#define NOISE_LEVEL A antal från 0 till 1024. Börja med 500 sedan finjustera numret.
Detta är det nummer som avgör vid vilken punkt Arduino börjar överföra volym ner koder
Obs: Ljud sensorn jag använder som en inbyggd potentiometer som också styr sensorns känslighet.
VOLYMEN ÄNDRA HASTIGHET
#define REPEAT_TX (från 1 till så många du vill. Börja med 3 då fin melodi)
Ändra hur många gånger du vill ha den kod överförs till TV. Om du vill ha mer drastiska nedgång i TV-volymen öka detta antal. Om du vill ha en mer gradvis förändring i volym, lägre detta nummer.
FUNKTIONEN TODO LISTA
Det är mycket enkelt att programmera mer funktionalitet i denna gadget. Några av de funktioner som kan läggas till:
- Genomsnittliga ljudnivån under en tid att avgöra om volymökning är ihållande som kräver volymkontroll eller tillfällig och bör ignoreras.
- Läs ljud nivå efter en tid. Om ljud är för låg öka volymen i vissa steg.
- Göra program inklusive remote protokoll
- Lägga till Panasonic & JVC stöd
ARDUINO KODEN
Klippa och klistra in koden nedan i din Arduino IDE
//=================================================
/*
PROJEKT: TV volym Guard
FÖRFATTARE: Hazim Bitar (techbitar)
DATUM: 9 FEB 2013
KONTAKT: techbitar på gmail punkt com
LICENS: Min kod är i public domain.
IRremote bibliotek: copyright av Ken Shirriff http://arcfn.com
*/
#include < IRremote.h >
#define NOISE_LEVEL 350 / / nivå av buller för att upptäcka från 0 till 1023
#define REPEAT_TX 3 / / hur många gånger överföra IR remote koden
#define REMOTE_CODE 0x1CE3E817 / / remote kod för att överföra. Detta är för min TV. Ersätt med din.
#define REMOTE_BIT 32
#define SOUND_SENSOR_PIN A0 /-ljud givare ansluten till denna analoga pin
#define LED 13 / / LED används blinka när volymen för hög
IRsend irsend; instansiera IR-objekt
void setup()
{
pinMode (LED, OUTPUT);
}
void loop()
{
int ljudnivå = analogRead(SOUND_SENSOR_PIN); Läs ljud sensorn
IF(soundLevel > NOISE_LEVEL) / / jämföra buller nivån tröskel du bestämmer
{
digitalWrite(LED,HIGH); Lysdioden på
Delay(200);
för (int txCount = 0; txCount < REPEAT_TX; txCount ++) {/ / hur många gånger överföra IR remote koden
irsend.sendNEC (REMOTE_CODE, REMOTE_BIT); Förändras för att matcha din remote protocol
Delay(200);
Avkommentera den funktion som matchar din fjärrkontroll protokoll framgår av IRrecvDump
irsend.sendNEC (REMOTE_CODE, REMOTE_BIT);
irsend.sendSony (REMOTE_CODE, REMOTE_BIT);
irsend.sendRC5 (REMOTE_CODE, REMOTE_BIT);
irsend.sendRC6 (REMOTE_CODE, REMOTE_BIT);
}
}
digitalWrite(LED,LOW); LEDDE bort
}
//=================================================