Étape 6: Contrôleur de programme IR-LED
La puce ATMega328P est également largement utilisée dans de nombreux systèmes de Arduino, y compris les plus courantes Arduino UNO. Cela nous donne un accès facile à un I2C commandé LED IR distance juste en développant le code sur un Arduino UNO normal (avec toutes ses bibliothèques et ses capacités) et plus tard transférer le programme à notre variante SMD de l’IC ATMega. J’ai utilisé la télécommande IR bibliothèque développé Ken Shirriff que vous pouvez trouver ici. Cette pièce très utile du code simplifie la génération de signaux de 38KHz et le moment d’envoyer le bon signal vers le bas pour quelques lignes facile du code et au bout du compte, il suffit de spécifier quel code numérique vous voulez envoyer avec un protocole spécifique. Pour trouver le bon code et protocole, vous pouvez utiliser par exemple l’impressionnant tutoriel publié par adafruit.
Dans mon cas, les codes suivants sont envoyés via le protocole de NEC pour contrôler la lampe :
Éteindre le voyant lumineux sur : 0xFFE01F (32 bits)
Éteindre le voyant lumineux blanc : 0xFFD02F (32 bits)
Augmentez la puissance de LED: 0xFFA05F (32 bits)
Baissez la LED power : 0xFF20DF (32 bits)
Éteindre le voyant lumineux éteint : 0xFF609F (32 bits)
Donc si vous voulez pour exemple allumer la lampe, vous utiliseriez la ligne de code suivante dans le moteur de développement Arduino :
Dans mon cas, j’ai voulu l’ATMega d’écoute sur l’adresse I2C 8 pour un code numérique qui sera ensuite envoyé à l’aide de l’IR-LED au format NEC. Donc si je veux inclure un nouveau code, j’ai juste ajouter (par exemple via SSH via une connexion Wi-Fi) au script en cours d’exécution sur le Bureau de Edison qui est beaucoup plus simple qu’au reprogrammer l’IC à l’intérieur de l’horloge. J’ai inclus le code source, mais aussi une copie du fichier binaire hexadécimal pour programmer l’IC lors de cette étape.
Toutefois, vous devez toujours transférer le programme initial sur votre IC ATMega soudé sur la carte. Pour ce faire le Conseil dispose d’un connecteur SPI dédié tel qu’indiqué dans la première image. Vous avez seulement besoin de quelques morceaux de fil, une carte Arduino et le libre logiciel winavr.
Commencez par brancher l’Arduino sur votre ordinateur et télécharger le programme de ArduinoISP dans la section exemple de votre Arduino SDK. Ensuite, connecter les broches de l’Arduino donnés dans le code pour les broches appropriées sur la carte de puissance. Si vous utilisez un Arduino UNO les connexions suivantes doivent être prises :
Arduino -> carte d’alimentation
GND -> GND
5V -> 5V
D10 -> RST
D13 -> SCK
D12 -> MISO
D11 -> MOSI
Après cela, vous pouvez ouvrir une ligne de commande sur votre ordinateur et vérifiez si l’IC est de répondre. Après avoir tapé la commande suivante, vous devriez voir une réponse en vous donnant le numéro de série et mis des fusibles de l’IC (tel qu’illustré dans la 2ème photo). Vous devez remplacer COM # avec le port série réel que votre Arduino est connecté à (comme indiqué en bas à droite dans votre Arduino SDK).
Si vous utilisez un IC « frais », il faut lui dire maintenant d’utiliser le cristal de quartz 16 MHz comme une entrée d’horloge. Cela se fait en définissant ce qu’on appelle « fusibles » (voir photo 3). Soyez très prudent lors de cette étape pour définir le bon fusible indiquées ci-dessus. Sinon, vous pourrait rendre votre IC inopérante.
Si tout a fonctionné jusqu'à présent, vous pouvez télécharger votre programme sur l’ATMega. Vous aurez besoin du fichier « hex » généré par le SDK de l’Arduino, lors de la compilation du code. En permettant la sortie détaillée lors de la compilation (options de l’Arduino SDK), vous pourrez facilement trouver le répertoire temporaire lorsque le fichier hex est stocké. Vous pouvez également utiliser le fichier « I2CRemote.cpp.hex » j’ai fourni avec le code source. Cependant, gardez à l’esprit qu’il enverra seulement le signal IR via le protocole de NEC. Pour télécharger le programme sur le type d’IC :
Vous avez maintenant fonctionnelle complète télécommande IR qui peuvent être déclenchés et contrôle par votre Conseil d’Edison.