MISE EN GARDE ; depuis cela, j’ai remarqué que cela fonctionne avec fiabilité à des moments moins de 30 secondes, mais lorsque étendu aux minutes il peut manquer de restauration audio, je suis à la recherche dans une meilleure façon de compter le délai de 3 minutes.
Mais pour l’instant, vous ajoutez qu'une série retarde chacune de 30 secondes pour faire à la durée totale souhaitée entre le silence et de la restauration.
Arduino semble avoir un problème à l’aide de la commande de retard lorsque le retard est de plus de 35 secondes.
À l’aide d’Arduino uno, vous pouvez créer une minuterie de mise en sourdine qui restaure l’audio après un délai défini.
Un développement futur pourrait consister à faire mémoriser le code d’une télécommande de téléviseur en ajoutant une fonction d’enregistrement, pour l’instant que de
au-delà de mon niveau de compétence, donc si quelqu'un veut ajouter à cela je serais très heureux.
La seule chose que je peux prétendre que le mien est l’idée, le code a été copié et piraté de différents sites et projets.
Vous avez besoin d’un Arduino
un émetteur IR
un récepteur IR
un commutateur de Poussée, pour commencer le code, ce n’est pas un verrouillage passer juste une simple pression et libération
une maquette de maintenir vos composants pendant que vous expérimentez,
Ils coûtent seulement quelques kilos est un projet très peu coûteux. Je vais ajouter des images de l’appareil final une fois que je le construire dans une boîte, mais pour maintenant, voici le code et les liens vers des sources que j’ai utilisé.
Une fois que vous construisez les composants d’abord chargent le logiciel lecteur IR pour capter le signal de mise en sourdine de votre télécommande.
Puis charger le croquis TV Mute et modifiez les valeurs muets à ceux que votre téléviseur.
J’ai utilisé l’information et la morue de ces sites pour concevoir mon projet.
http://www.Learn.Adafruit.com/IR-Sensor/Making-an-intervalometer/
http://www.righto.com/2009/08/Multi-Protocol-Infrared-Remote-Library.html
Voici une astuce, si vous voulez voir un IR LED émet son signal de regarder la LED à l’aide de l’écran sur votre appareil photo numérique tout en appuyant sur le bouton, la plupart des caméras peuvent voir IR, mais n’utilisent pas un Iphone, ils ont un filtre IR qui bloque IR donc il ne verra pas le signal
Connectez le récepteur IR à broches 11 Gnd et 5v,
Vous remarquerez que les capteurs sont raccordés aux broches différentes en quelques images, les connexions sont dépendantes de l’esquisse du logiciel que vous avez chargé donc prendre note chaque fois que vous chargez un croquis, dans le code il y aura commentaires cet État où les capteurs sont connectés.
Connecter l’émetteur IR à 12 broches et GND.
Connecter l’interrupteur de démarrage à la broche 3 et GND.
Mes tentatives de joindre le sketch Arduino ici n’a pas, alors voici le code pour le sketch muet, copiez et collez-le dans la fenêtre de l’Arduino.
La fonction de synchronisation a été affinée, veuillez consulter la plus récente version du code ci-dessous.
Les nouvelles lignes sont
unsigned long timespan = 180000 ;
retard (timespan) ; attendre 3 minutes
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Cette esquisse enverra un signal Mute Sony
Information et code d’origine de http://learn.adafruit.com/ir-sensor et
Information et code d’origine de http://learn.adafruit.com/ir-sensor/making-an-intervalometer
Crédit à Ian Lang, qui m’a aidé à résoudre mon problème de synchronisation.
Ce code est du domaine public, s’il vous plaît profiter !
int IRledPin = 12 ; LED connectée à la broche numérique 12
int buttonPin = 3 ; FOOTSWITCH connecté au numérique #3 au sol la goupille d’engager
La méthode setup() s’exécute une seule fois, au démarrage de l’esquisse
unsigned long timespan = 180000 ;
void setup() {}
initialiser la broche numérique IR en tant que sortie :
pinMode (IRledPin, sortie) ;
pinMode (buttonPin, entrée) ;
digitalWrite (buttonPin, HIGH) ; pullup sur
Serial.Begin(9600) ;
}
programmer votre temps d’attente à 10 secondes pour tester le fonctionnement d’abord, puis changer à 1800 pendant 3 minutes mute, ou un peu plus courte
pour laisser le temps qu’il vous faut pour lancer le « secret » et attraper la fin hors les publicités.
void loop()
{
Si (! digitalRead(buttonPin))
{
Serial.println ("signal IR envoi") ; muteswitch pressée
SendCMuteCode() ;
retard (timespan) ; attendre 3 Minutes
Serial.println ("envoi IR signal2") ;
SendCMuteCode() ;
}
}
Cette procédure envoie une impulsion de 38KHz à la IRledPin
pour un certain nombre de microsecondes. Nous allons utiliser ceci chaque fois que nous devons envoyer des codes
void pulseIR(long microsecs) {}
Nous allons compter à rebours de la nombre de microsecondes, Qu'on nous dit d’attendre
CLI() ; Cela désactive les interruptions de fond
tandis que (microsecs > 0) {}
38KHz est environ 13 microsecondes de haute et basse 13 microsecondes
digitalWrite (IRledPin, élevé) ; Cela prend environ 3 microsecondes pour arriver
delayMicroseconds(10) ; passer du temps pour 10 microsecondes
digitalWrite (IRledPin, basse) ; Cela prend environ 3 microsecondes
delayMicroseconds(10) ; passer du temps pour 10 microsecondes
au total donc 26 microsecondes
microsecs-= 26 ;
}
SEI() ; il les transforme en retour sur
}
void SendCMuteCode() {}
C’est le code pour mon Canon particulier, car d’autres utilisent le tutoriel
à « s’emparer » le bon code de la télécommande
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) ; attendre 65 millisecondes avant de l’envoyer à nouveau
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) ;
}