Étape 15 : programmation
Juste flasher le firmware pour elle.
Le code est assez vaste, je vais vous donner un aperçu du code complet.
Firmware complet : https://github.com/victornpb/sketch_aug20b_som_rem...
displayRoutine.ino contient :
- ledBlink - poignées led clignotant et expirer de façon asynchrone
- currentViewMode - un des que possible :
- VIEWMODE_NORMAL, affiche le volume actuel, puis passer à VIEW_IDLE
- VIEWMODE_ANIM_MUTE, alterner entre tirets et le volume actuel dans un intervalle défini
- VIEWMODE_ANIM_VOLUP, affichez l’animation puis passez à VIEWMODE_NORMAL
- VIEWMODE_ANIM_VOLDW, affichez l’anim en arrière, puis passez à VIEWMODE_NORMAL
- VIEWMODE_LOCKED, tour de l’écran et allumez les points décimaux
- VIEWMODE_IDLE, la volonté d’affichage ne changera pas il affiche tout ce qui est actuellement sur la mémoire tampon.
framesLenght et cadres [] [2] est l’animation réelle et la longueur.
- displayRoutine()
- fonction appelée sur la boucle principale il gérera les délais d’attente et appellera la sevenSeg_displayHold() qui affiche les données sur l’affichage réel.
sevenSeg.ino contient :
Ce sketch arduino fournit des logiciels d’affichage 7 segments de route avec multiplexage, asynchrone et ne nécessite pas des interruptions matérielles ou minuterie externes. Seulement un seul segment est activé à temps, cela permet l’affichage être transformé avec simplement les broches actuel et ne nécessite qu’une seule résistance par affichage sur l’axe commun, permet également l’affichage à utiliser une fraction de la pleine puissance.
- sevenSeg_font array contenant une bitmap qui représentent chaque chiffre
- [displayData] - mémoire tampon d’octets de chaque affichage 7 segments
- fonction de sevenSeg_setNumber() qui définit la mémoire tampon de la bitmap sevenSeg_font correcte displayData
- sevenSeg_displayHold() fonction qui effectuent le multiplexage pour dessiner chaque chiffre avec un retard d’assyncronous entre les segments
EVC.ino contient :
Bibliothèque pour l’utilisation PT2257 - Volume électronique contrôleur IC.
- void evc_setVolume (uint8_t dB) ;
- void evc_setVolumeLeft (uint8_t dB) ;
- void evc_setVolumeRight (uint8_t dB) ;
- void evc_mute (bool toggle) ;
- void evc_off() ;
Remote.INO contient :
- enum LgRemote
- enum AiwaRemote
- lgMenu
Les flèches haut et bas sont utilisées pour contrôler le volume, mais quand vous appuyez sur la touche menu, ces touches sont utilisées pour naviguer dans le menu, cet espace de noms est utilisée pour gérer quand vous appuyez sur une touche de menu et momentanément ne répond plus à la place / DW touches pour éviter tout conflit lors de la navigation sur le menu.
- onModeLocked
- onModeLockedOff
- routine()
- processKey (valeur de type long non signé, long currentMillis)
- processRemote() octet cette fonction est appelée sur chaque boucle, poignées et envoi que tout ce qui concerne les événements IR
sketch_aug20b_som_remote4.INO
- enum Cmd {CMD_VOLUP, CMD_VOLDW, CMD_NONE, CMD_MUTE}
- mode octets
- Machine à état
----
J’ai écrit le firmware en morceaux que vous pouvez utiliser si vous voulez faire votre propre firmware :
Bibliothèque pour l’utilisation PT2257 - Volume électronique contrôleur IC :
https://github.com/victornpb/Evc_pt2257
Croquis avec modèle bon d’utiliser une ou plusieurs télécommandes d’exécuter des actions :
https://github.com/victornpb/generic_remote_contro...
Ce sketch arduino fournit des logiciels d’affichage 7 segments de route avec ne multiplexage, aucun pilote externe pour disque 1 ou quelques uns s’affiche. Aucune interruption matérielle requise, l’exécution asynchrone :
https://github.com/victornpb/ledDisp
Exemple de l’Arduino code de conduire un affichage 7 segments, d’un tableau d’image bitmap :