Stap 4: Bereiden de ARDUINO-programma
EXTERNE KNOPCODE & bits
#define REMOTE_CODE uw externe code als resultaat wordt gegeven door de IRrecvDump decoderingsorgaan utility voorafgegaan door "0 x"
#define REMOTE_BIT uw gegevensgrootte externe code zoals die wordt geretourneerd door de IRrecvDump decoderingsorgaan utility.
Dit Arduino-programma werkt voor de meeste afstandsbedieningen, maar je moet het op de hoogte wordt gesteld van uw afstandsbediening-protocol van de info die u in de vorige stap hebt verzameld wanneer u uw knoppen van de afstandsbediening IRrecvDump hulpprogramma gedecodeerd. Het is mogelijk om de externe selectie dynamisch maken tijdens runtime zodat u niet hoeft te wijzigen en uploaden van de code. Ik zou dit doen in een latere versie van deze gadget.
VOLUMENIVEAU Drempel
#define NOISE_LEVEL een aantal van 0 tot 1024. Begin met 500 dan fine-tunen van het nummer.
Dit is een getal dat bepaalt op welk punt de Arduino zal beginnen verzendende Volume Down codes
Opmerking: De correcte sensor gebruik ik als een ingebouwde potentiometer die ook de gevoeligheid van de sensor controleert.
VOLUME CHANGE SPEED
#define REPEAT_TX (van 1 tot zoveel als u wilt. Beginnen met 3 dan fine tune)
Wijzigen hoe vaak u wilt dat de externe code doorgegeven aan de TV. Als u wilt meer drastische daling in het volume TV vergroten dit nummer. Als u wilt dat een meer geleidelijke verandering in volume, verlaagt dit nummer.
FUNCTIE TODOLIJST
Het is zeer eenvoudig te programmeren meer functionaliteit in deze gadget. Enkele van de functies die kunnen worden toegevoegd:
- Gemiddelde geluidsniveau over een periode van tijd om te bepalen als volumetoename is persistent volumeregeling vereisen of kortstondige en moet worden genegeerd.
- Lees audioniveau na een periode van tijd. Als het geluid is te laag, Verhoog volume door een bepaalde toename.
- Programma inclusief ondersteunde externe protocollen maken
- Panasonic & JVC ondersteuning toevoegen
DE CODE VAN DE ARDUINO
Knip en plak de onderstaande code in uw Arduino IDE
//=================================================
/*
PROJECT: Volume TV Guard
Auteur: Hazim Bitar (techbitar)
DATUM: 9 FEBRUARI 2013
Contactpersoon: techbitar op gmail dot com
LICENTIE: Mijn code is in het publieke domein.
IRremote bibliotheek: auteursrecht door Ken Shirriff http://arcfn.com
*/
#include < IRremote.h >
#define NOISE_LEVEL 350 / / niveau van ruis op het detecteren van 0 tot 1023
#define REPEAT_TX 3 / / hoe vaak voor het verzenden van de externe IR-code
#define REMOTE_CODE 0x1CE3E817 / / remote code te zenden. Dit is voor mijn TV. Vervang met de jouwe.
#define REMOTE_BIT 32
#define SOUND_SENSOR_PIN A0 / / correcte sensor verbonden met deze analoge pin
#define LED 13 / / LED gebruikt te knipperen wanneer volume te hoog
IRsend irsend; IR-object instantiëren
VOID Setup
{
pinMode (LED, uitvoer);
}
void loop
{
int soundLevel = analogRead(SOUND_SENSOR_PIN); Lees de correcte sensor
if(soundLevel > NOISE_LEVEL) / / vergelijken met niveau Ruisdrempel u beslist
{
digitalWrite(LED,HIGH); LED op
delay(200);
voor (int txCount = 0; txCount < REPEAT_TX; txCount ++) {/ / hoe vaak voor het verzenden van de externe IR-code
irsend.sendNEC (REMOTE_CODE, REMOTE_BIT); Aanpassen aan uw verre protocol van de
delay(200);
Uncomment de functie die overeenkomt met uw afstandsbediening-protocol, zoals blijkt uit de 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); OPENDE
}
//=================================================