Etape 11 : Codage - Menu Paramètres
pour réglage des boutons de menu 2 et 1 bouton est utilisé.
Touche 1 :
Appuyez longuement sur d’entrée / sortie de menu
Presse de short pour l’option de menu suivante
Bouton (potentiomètre) :
Faire pivoter pour la valeur souhaitée de 0 à 100
Touche 2 :
Enregistre le potentiomètre de consigne comme nouvelle valeur du paramètre dans l’EEPROM du Atmega328
code de boutons d’ici :
Voici le code :
MENU RÉGLAGES *** / /
menu() Sub {}
Switch (ModeCount) {/ / modecount est une touche court - combien de temps pressé = numéro d’article de menu
cas 1: / / thermostat pour boitier pc
Si (Mode_firsttime == true) {/ / donc il dosent boucles nombre incalculable de fois mais une seule fois
Mode_firsttime = false ;
''' lisez la valeur stockée dans la mémoire morte '''/ /
LCD.Clear() ;
lcd.setCursor (0, 0) ;
LCD.Print (F ("CPU Fan:")) ;
LCD.Print(EEPROM.Read(EEPthermostat)) ;
LCD.Print (F("C")) ;
} / / fin si mode firsttime
''' rafraîchir après 0,5 seconde '''/ /
Si (GPcurrenttime - prev_setting_display > = 500) {/ / 500 ms - 0,5 sec
prev_setting_display = GPcurrenttime ;
''' lecture mise en valeur du Pot et lcd imprime si changé de précédent '''/ /
settingpotfunc() ; Fonction lit la valeur du paramètre pot
lcdnewvalue() ; efface la ligne du bas et affiche la valeur pot
''' Bouton enregistre dans l’EEProm '''/ /
Si (potButtoncount == 1) {}
EEPROM.write (EEPthermostat, potvalue) ;
newvalueset() ; efface l’écran lcd et affiche la nouvelle valeur
Mode_firsttime = true ; teml à relire eeprom pour la valeur la plus récente
potButtoncount = 0 ;
} / / fin si le bouton du pot est 1
} / / fin de minuterie si
rupture ; cas 1
//````````````````````THE END ``````````````````````````````````````//
***************************************************************************************************
ok maintenant whats est mise en pot et lcd nouvelle fonction de la valeur :
aider les petites fonctions
********************/
/ *** pot réglage bouton enregistrer *** / /
void potButtons() {}
puisque c’est sur la broche X5 (de 4015, on passera les portes (S0 2) selon le tableau de la feuille de données pour sélectionner cette entrée
PORTC = B00001010 ; définit les broches analogiques A1 haute
retard (5) ;
Serial.Print("potbutton") ;
Serial.println(potButtoncount) ;
int potButton = digitalRead(SensorsInput) ;
Si (potButton! = potButtonstate) {}
Si (potButton == HIGH) {}
potButtoncount ++ ;
Si (potButtoncount > = 2) {}
potButtoncount = 0 ;
}
}
Delay(50) ; pour éviter les rebonds de bouton
}
potButtonstate = potButton ;
}
Le bouton de volume pour définir les valeurs ***
void settingpotfunc() {}
puisque c’est sur la broche X1 (de 4015, on passera les portes (S0 à 2) conformément à la feuille de données de table pour sélectionner cette entrée
PORTC = B00000010 ; définit les broches analogiques A1 haute
retard (5) ;
''' lecture et lisse '''/
junkreads octets = analogRead(SensorsInput) ;
potvalue = map(analogRead(SensorsInput), 0, 0, 850, 102) ;
} / / fin de void
void lcdnewvalue() {}
lcd.setCursor (0, 1) ;
LCD.Print("") ;
lcd.setCursor (0, 1) ;
LCD.Print ("New?:") ;
LCD.Print(potvalue) ;
retard (50) ;
} / / fin de void
void newvalueset() {}
lcd.setCursor (0, 1) ;
LCD.Print("") ;
lcd.setCursor (0, 1) ;
LCD.Print ("nouvelle valeur ensemble!") ;
retard (500) ;
lcd.setCursor (0, 1) ;
LCD.Print("") ;
}