Canivete Posté(e) Février 20, 2024 Posté(e) Février 20, 2024 (modifié) Bonjour, j'ai un Esp 32 c3 super mini, trois boutons et trois leds qui son reliés au ports: boutons: 0, 1 et 5 du esp. leds: 2, 3 et 4 du esp J'ai vue sur quelques fotos sur internet que ceux-ci sont des ports analogique. Sur ce moi je veux que quand un des boutons est pressé un des led s'allume et que le moniteur montre la valeur du bouton, pour sa j'ai ce code. Puis-je lire les boutons sur des ports digitaux?? const int led1 = 3; const int led2 = 2; const int led3 = 4; const int btn1 = 0; const int btn2 = 1; const int btn3 = 5; int valbtn1; int valbtn2; int valbtn3; void setup() { Serial.begin(9600); pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); pinMode(btn1, INPUT); pinMode(btn2, INPUT); pinMode(btn3, INPUT); } void loop() { Serial.println(valbtn1); valbtn1 = analogRead(btn1); valbtn2 = analogRead(btn2); valbtn3 = analogRead(btn3); if (valbtn1 > 1000) {digitalWrite(led1, HIGH); delay(200); digitalWrite(led1, LOW);} if (valbtn2 > 1000) {digitalWrite(led2, HIGH); delay(200); digitalWrite(led2, LOW);} if (valbtn3 > 1000) {digitalWrite(led3, HIGH); delay(200); digitalWrite(led3, LOW);} } Mais les leds clignotent et sur le moniteur j'ai cette ereur: e ADC_ONESHOT_FORCE_USE_ADC2_ON_C3 to force use ADC2 E (1118) ADC: ADC2 is no longer supported, please use ADC1. Search for errata on espressif website for more details. You can enable ADC_ONESHOT_FORCE_USE_ADC2_ON_C3 to force use ADC2 Aidez moi SVP!!!! Modifié (le) Février 20, 2024 par Canivete
urzhi Posté(e) Juin 22, 2024 Posté(e) Juin 22, 2024 (modifié) je pense que tu t"y prends pas correctement, il faut utiliser les fonctions d'interruption. j'ai récement expérimenté un truc pareil pour commencer à me faire la main sur ESP (je débute moi aussi) , ici pour une led allumé, l'autre éteinte, et ca s'inverse quand tu appui sur le bouton extrait de code // Fonction d'interuption sur l'interupteur void IRAM_ATTR fonction_ISR() { if (millis() - lastMillis > 10) { // Software debouncing buton //ets_printf("ISR triggered\n"); buttonState = !buttonState; digitalWrite(ledPinA, buttonState); digitalWrite(ledPinB, !buttonState); flagBouton = 1; } lastMillis = millis(); } void setup() { //Definition GPIO pinMode(buttonPin, INPUT_PULLUP); pinMode(ledPinA, OUTPUT); pinMode(ledPinB, OUTPUT); // détectection de changement d'état (valeur possible ; LOW, HIGH, RISING, FALLING, CHANGE) attachInterrupt(buttonPin, fonction_ISR, CHANGE); void loop() { if (flagBouton == 1) { client.publish(topic, "Bouton enclenché"); flagBouton = 0; } Modifié (le) Juin 22, 2024 par urzhi
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant