Problème avec l'entrée A4
Bonjour, j'utilise mon arduino uno depuis quelques mois. J'utilise toutes les entrees sorties 2 à 13 plus A0 à A3. Je voudrai ajouter une entrée digitale en A4 mais je n'y arrive pas. Elle est toujours lue comme active. J'ai d'abord cheché coté hardware et n'ai rien trouvé. Cablée comme les autres. Si je connecte A4 directement sur GND mon programme la lit toujours à 1 alors que ça fonctionne bien pour les autres. Donc je suppose que c'est mon soft qui n'est pas bon. J'ai retiré tout ce qui est inutile et joins le soft ci-dessous. Merci de votre aide et vos conseils.
Code:
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
| // Constantes Entrées Sorties Analogiques
const int analog_In_Photo = A0; // Analog input photo resistance
// Constantes Sorties digitales
// Constantes Entrees Digitales
const int fin_course_ouvert = 2; // pin fin de course ouvert (trappe)
const int fin_course_ferme = 4; // pin fin de course fermé (trappe)
const int Bouton_Man_Auto = A1;
const int Bouton_Ouvert_Ferme = A2;
const int Bouton_porte_fermee = A3; // Grande porte fermée = HIGH
const int Bouton_marche_forcee = A4; // Entree marche forcee si = HIGH (pilotage extérieur)
// Constantes pour le programme
// Variables :
int Etat_fin_course_ouvert = 0; // variable for reading etat fin de course ouverture
int Etat_fin_course_ferme = 0; // variable for reading etat fin de course fermeture
int Mesure_Lumiere = 0; // value read from the photo resistance
int Etat_bouton_auto = 0; // Etat bouton poussoir A/M (1 si appuyé => bascule)
int Etat_bouton_O_F = 0; // Etat bouton poussoir O/F (1 si appuyé = bascule)
int Etat_porte_fermee = 1; // Etat grande porte - Fermée = 1 ; Ouverte = 0
int Etat_bouton_Marche_Forcee = 0; // Etat entree marche forcee (pilotage exterieur)
// Gestion du temps
//Library version:1.1 Ecran LCD
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup() {
// Initialisation Ecran LCD
lcd.init(); // initialize the lcd
// initialize the pushbutton pin as an input:
pinMode (fin_course_ouvert, INPUT); // pinMode (fin_course_ouvert, INPUT_PULLUP); // active la résistance interne de la broche concernée
pinMode (fin_course_ferme, INPUT); // pinMode (fin_course_ferme, INPUT_PULLUP); // active la résistance interne de la broche concernée
pinMode (Bouton_Man_Auto, INPUT); // pinMode (Bouton_Man_Auto, INPUT_PULLUP); // active la résistance interne de la broche concernée
pinMode (Bouton_Ouvert_Ferme, INPUT); // pinMode (Bouton_Ouvert_Ferme, INPUT_PULLUP); // active la résistance interne de la broche concernée
pinMode (Bouton_porte_fermee, INPUT); // pinMode (Bouton_porte_fermee, INPUT_PULLUP); // active la résistance interne de la broche concernée
pinMode (Bouton_marche_forcee, INPUT); // pinMode (Bouton_porte_fermee, INPUT_PULLUP); // active la résistance interne de la broche concernée
// Print a message to the LCD.
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Initialisation");
}
void loop() {
// put your main code here, to run repeatedly:
// Provisoire pour test
// Lectures entrées
Etat_porte_fermee = digitalRead (Bouton_porte_fermee);
Etat_bouton_auto = digitalRead (Bouton_Man_Auto);
Etat_fin_course_ouvert = digitalRead (fin_course_ouvert);
Etat_fin_course_ferme = digitalRead (fin_course_ferme);
Etat_bouton_O_F = digitalRead (Bouton_Ouvert_Ferme);
Etat_bouton_Marche_Forcee = digitalRead (Bouton_marche_forcee);
Mesure_Lumiere = analogRead(analog_In_Photo);
// Affichage état entrées
lcd.setCursor(0,1);
lcd.print(Mesure_Lumiere);
lcd.print(" ");
lcd.print(Etat_bouton_auto);
lcd.print(" ");
lcd.print(Etat_bouton_O_F);
lcd.print(" ");
lcd.print(Etat_porte_fermee);
lcd.print(" ");
lcd.print(Etat_fin_course_ferme);
lcd.print(" ");
lcd.print(Etat_fin_course_ouvert);
lcd.print(" ");
lcd.print(Etat_bouton_Marche_Forcee);
lcd.print(" ");
delay (200);
} |