Stäng av TV: N för varaktigheten av reklamfilmerna
FÖRSIKTIGHET; sedan gör det jag har märkt att det fungerar tillförlitligt på tider under 30 SEK, men när utvidgas till att minuter det kan undgå att återställa ljud, ser jag att ett bättre sätt att räkna 3 minuters försening.
Men nu du lägga till en rad förseningar varje 30 sekunder att göra till den sammanlagda tiden du vill ha mellan mute och återställning.
Arduino verkar ha ett problem med kommandot fördröjning när förseningen är över 35 sekunder.
Använda Arduino uno kan du bygga en stum timer som återställer ljudet efter en viss tid.
En framtida utveckling kan vara att göra det lagra koden från en TV-fjärrkontroll genom att lägga till en post funktion, på denna tid som
utöver min skicklighetsnivå, så om någon vill Lägg till detta det skulle glädja.
Enda jag kan påstå som min är tanken, koden har kopierats och hacka från olika platser och projekt.
Du behöver en Arduino
en IR avsändare
en IR-mottagare
en push switch, starta koden, dess inte en låsning växla bara ett enda tryck på och släpp
en skärbräda att hålla dina komponenter medan du experimentera,
De kostar bara några pounds så det är ett mycket billigt projekt. Jag kommer att lägga bilder av den slutliga enheten när jag bygger det i en låda men för nu här är koden och länkar till källor jag använt.
När du bygger ladda komponenterna först upp programvaran IR-Reader att fånga ljud av signalen från fjärrkontrollen.
Sedan ladda upp TV Mute skissen och ändra ljud av värdena till de som TV: N kräver.
Jag använde information och torsk från dessa platser för att utforma mitt projekt.
http://www.learn.adafruit.com/IR-sensor/Making-an-intervalometer/
http://www.Righto.com/2009/08/multi-Protocol-Infrared-Remote-Library.html
Här är ett tips, om du vill se en IR-LED avger sin signal titt på LED med skärmen på din digitalkamera samtidigt som du trycker på knappen, de flesta kameror kan se IR, men Använd inte en Iphone, de har ett IR-filter som blockerar IR så det inte kommer se signalen
Anslut IR-mottagare till stift 11, Gnd och 5v,
Du kommer att notera att sensorerna är anslutna till olika stift i vissa bilder, anslutningarna är beroende av programvara skissen du har laddat så noterar varje gång du laddar upp en skiss, i kod man kommentarer denna stat där sensorerna ansluts.
Anslut IR avsändaren till stift 12 och Gnd.
Ansluta växeln start till stift 3 och Gnd.
Mina försök att koppla Arduino skiss här misslyckades, så här är koden för ljud av skissen, kopiera och klistra in den i fönstret Arduino.
Funktionen timing har förfinats, se den nya versionen av koden nedan.
De nya linjerna är
osignerade långa timespan = 180000;
fördröjning (timespan); vänta 3 minuter
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Denna skiss kommer en signal Sony Mute
Information och ursprungliga koden från http://learn.adafruit.com/ir-sensor och
Information och ursprungliga koden från http://learn.adafruit.com/ir-sensor/making-an-intervalometer
Heder åt Ian Lang som hjälpte jag lösa min tidsfel.
denna kod är allmän egendom, njuta Vänligen!
int IRledPin = 12; LED är ansluten till digital stift 12
int buttonPin = 3; fotkontakten ansluten till digital #3 jorda stiftet att inleda
Metoden setup() körs en gång, när skissen startar
osignerade långa timespan = 180000;
void setup() {
initiera IR digital stiftet som en utgång:
pinMode (IRledPin, OUTPUT);
pinMode (buttonPin, ingång);
digitalWrite (buttonPin, hög); pullup på
Serial.BEGIN(9600);
}
inledningsvis anger din fördröjning på 10 sekunder för att testa, då ändra den till 1800 för en hel 3 minuter stum, eller lite kortare
för att ge tid tar det att inleda mutan och att fånga slutet av reklamen.
void loop()
{
om (! digitalRead(buttonPin))
{
Serial.println ("Skicka IR-signal"); muteswitch pressas
SendCMuteCode();
fördröjning (timespan); vänta 3 minuter
Serial.println ("Skicka IR-signal2");
SendCMuteCode();
}
}
Detta förfarande skickar en 38KHz puls till IRledPin
för en viss # mikrosekunder. Vi använder detta när vi behöver skicka koder
void pulseIR(long microsecs) {
Vi ska räkna ner från numrera av mikrosekunder vi får höra att vänta
CLI(); Detta stänger av någon bakgrund avbryter
samtidigt (microsecs > 0) {
38 kHz är cirka 13 mikrosekunder hög och 13 mikrosekunder låg
digitalWrite (IRledPin, hög); Detta tar ca 3 mikrosekunder att hända
delayMicroseconds(10); hänga ut för 10 mikrosekunder
digitalWrite (IRledPin, låg); Detta tar också ca 3 mikrosekunder
delayMicroseconds(10); hänga ut för 10 mikrosekunder
så 26 mikrosekunder alldeles
microsecs-= 26.
}
SEI(); Detta visar dem tillbaka på
}
void SendCMuteCode() {
Detta är koden för min särskilda Canon, för andra använda handledning
att "greppa" ordentlig koden från fjärrkontrollen
delayMicroseconds(2595);
pulseIR(2450);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(1200);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(1250);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(650);
delayMicroseconds(600);
pulseIR(1200);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(650);
delayMicroseconds(600);
pulseIR(650);
Delay(65); vänta 65 millisekunder innan du skickar det igen
delayMicroseconds(2595);
pulseIR(2450);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(1200);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(1250);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(650);
delayMicroseconds(600);
pulseIR(1200);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(650);
delayMicroseconds(600);
pulseIR(650);
}