1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
| char version[14]="ME_ZXL_v3.37F";
boolean eclairage = true;
boolean status_function_pause = false; // initialise le status de PAUSE à false au départ, puisqu'on n'a pas encore appuyé dessus.
// utilisé car le Nakamichi a besoin d'activer [PLAY] en plus pour lancer l'enregistrement
boolean status_function_record = false; // initialise le status de la fonction RECORD à false au départ: permet de savoir si on vient d'une boucle Record
boolean status_play = false; // initialise le status de PLAY à false au départ, puisqu'on n'a pas encore appuyé dessus.
// DEBUT DE LA DECLARATION DES PINS DIGITALES POUR LES RELAIS DE LA CARTE "RM-300 MECHANISM" (identiques à l'ancienne RC-57):
int relai_STOP=46; // puisque c'est la pin D46 qui commande le relai N°1 "STOP" avec la nappe 6 fils reliant MEGA-2560 à la carte "RM-300 MECHANISM"
int relai_PAUSE=44; // puisque c'est la pin D44 qui commande le relai N°2 "PAUSE" (erreur sur la v250.ino où il avait "REC" avec la nappe 6 fils
// reliant MEGA-2560 à la carte "RM-300 MECHANISM"
int relai_PLAY=42; // puisque c'est la pin D42 qui commande le relai N°3 "PLAY" avec la nappe 6 fils reliant MEGA-2560 à la carte "RM-300 MECHANISM"
int relai_FF=40; // puisque c'est la pin D40 qui commande le relai N°4 "FF" avec la nappe 6 fils reliant NMEGA-2560 à la carte "RM-300 MECHANISM"
int relai_REW=38; // puisque c'est la pin D38 qui commande le relai N°5 "REW" avec la nappe 6 fils reliant MEGA-2560 à la carte "RM-300 MECHANISM"
int relai_REC=36; // puisque c'est la pin D36 qui commande le relai N°6 "REC" avec la nappe 6 fils reliant MEGA-2560 à la carte "RM-300 MECHANISM"
// FIN DE LA DECLARATION DES PINS DIGITALES POUR LES RELAIS DE LA CARTE "RM-300 MECHANISM"
// DEBUT DES DECLARATIONS POUR ECRAN LCD
#include <Wire.h> // librairy requise pour l'écran LCD, incluse dans l'IDE Arduino et qui n'apparaitra donc pas
// dans le sous-dossier 'Librairies' du répertoire Arduino
#include <DFRobot_LCD.h> // librairy gérant les afficheurs DFRobot 0555 et équivalents
DFRobot_LCD lcd(16,2); //16 characters and 2 lines of show
// FIN DES DECLARATIONS POUR ECRAN ECRAN LCD
// =======================================================
// DEBUT DES DECLARATIONS POUR RECEPTION
#include <IRremote.h> // librairy permettant d'utiliser l'IR, ici c'est la v3.3.0 qui est utilisée, d'où les syntaxes différentes
// par rapport aux versions 2.x de IRremote.h
const int RECV_PIN = 49; // car on relie la sortie du récepteur IR à la pin D49 de la MEGA-2560
char active_input[17]="Ready";// déclare la chaine appelée "active_input" que l'on affichera sur le LCD
// FIN DES DECLARATIONS POUR RECEPTION
// =======================================================
void firmware()
{
Serial.println("Appui sur 0 ou HOME: Firmware ");
Serial.println(IrReceiver.decodedIRData.decodedRawData, HEX);
// ATTENTION: inclure la modif demandée par TURCOVITCH pour réafficher la fonction en cours: à reprendre d'une
// version précédente v220 ???
lcd.clear(); // clear display
lcd.setCursor(0,0);
lcd.print("Firmware version"); // affichera "Firmware version" sur la 1ere ligne
lcd.setCursor(2,1);
lcd.print(version);
delay(3000);
lcd.clear(); // clear display,
lcd.setCursor(1,1); // left second line (1 from 1-16, Ligne 1 from 0-1)
lcd.print(active_input); // puis remet re-affiche la fonction qui était active avant l'appel du Firmware
}
void setup()
{
Serial.begin(115200); /
Serial3.begin(9600); // permet d'initialiser le port série Serial3 sur lequel est connecté le HC08
IrReceiver.begin(RECV_PIN, ENABLE_LED_FEEDBACK); // c'est l'instruction de remplacement donné par le Wiki Youtube
// Et aussi tous les pinmode des RELAIS en Output ici:
pinMode(relai_PLAY,OUTPUT);
pinMode(relai_REW,OUTPUT);
pinMode(relai_FF,OUTPUT);
pinMode(relai_PAUSE,OUTPUT);
pinMode(relai_REC,OUTPUT);
pinMode(relai_STOP,OUTPUT);
Wire.begin(); // join I2C bus (address optional for master)
// initialize d'après l'exemple fourni par DFRobot pour l'écran DFR0555
lcd.init();
// Print a message to the LCD.
lcd.setCursor(0, 0); // 1ère position de la ligne 0
lcd.print("Toto1");
lcd.setCursor(0, 1); // 1ère position de la ligne 1
lcd.print("Toto2");
delay(3000);
lcd.clear();
// Par sécurité, on désactive TOUS les relais en les passant à LOW, puisqu'ils s'activent lorsqu'on les met à HIGH
// au cas où un relais resterait collé
digitalWrite(relai_REC,LOW);
digitalWrite(relai_PAUSE,LOW);
digitalWrite(relai_FF,LOW);
digitalWrite(relai_REW,LOW);
digitalWrite(relai_PLAY,LOW);
digitalWrite(relai_STOP,LOW);
} //Fin du void setup
void loop()
{
if((IrReceiver.decodedIRData.decodedRawData==0x87637D88)||(IrReceiver.decodedIRData.decodedRawData==0x2837E784))
{
firmware; //on appelle donc la fonction FIRMWARE définie au début
IrReceiver.decodedIRData.decodedRawData==0x000;
IrReceiver.resume();
} //Fin du IF pour la Fonction HOME affichant le FIRMWARE
delay(500);
IrReceiver.resume();
}
} |