erreur branchement c'est grave ?

Bonjour,
sur une Uno, j'ai par erreur raccordé un bouton au +5v au lieu de le mettre à la masse.
le bouton venait de la pin 3, et sans résistance.

int cge=3;
...
pinMode(cge, INPUT);

je l'ai actionné à plusieurs reprises, cela a émis un son dans mon ordi, j'étais alimenté en usb
ma question :
est ce que cela a pu endommager mon arduino uno (chinoise) ?
Merci de votre aide

Bonjour,

Tu peux sans problème mettre une entrée au 5V sans résistance (bien sur il ne faut pas que ton programme la configure en sortie)

Donc si ton bouton connecte simplement une entrée au 5V pas de problème.
Par contre si tu veux lire l'entrée de manière fiable, il faut une résistance de pull down pour mettre l'entrée à 0 quand le bouton est relaché.

ok merci, mais sur le schéma elle est raccordée à la masse et en la mettant à la masse ca marche par contre au +5vcc ca sonne dans l'ordi (c'est comme ca que je me suis apercu de ma bétise)
sur le schéma ci joint elle correspond à la pin 9 (que j'ai mis en 3 car la 9 était déjà prise par mon shield lcd
donc je peux avoir tué la sortie ou pas ? apparemment elle fonctionne encore...


merci à tous pour votre aide et votre patience avec les débutants

luckymaxou:
sur le schéma ci joint elle correspond à la pin 9 (que j'ai mis en 3 car la 9 était déjà prise par mon shield lcd
donc je peux avoir tué la sortie ou pas ? apparemment elle fonctionne encore...

Je ne comprend pas sur ton schéma la pin 3 est connectée au LCD et est sans doute configurée en sortie
En tout cas si tu mets une pin E/s au 5V, qu'elle est configurée en entrée et qu'elle n'est pas connectée à autre chose, il n'y a pas de problème électrique.

oui, sur le schéma qui n'est pas de moi, mais trouvé ici la pin 9 est une sortie vers le lcd,
mais comme mon lcd est un shield branché sur 8.9.4.5.6.7 j'ai modifié le code et mis cde sur 3 au lieu de 9

#include <RTClib.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); 
RTC_DS1307 RTC;
int tmp,Inc,hor,mIn,add=11; 
int set=2;  
int cge=3;   
//int mod=10;
int mod=0; // zero affiche l'heure, 10 passe directement à prog set alarme
int off=0;
#define buz 11 
int Hor,Min,Sec; 
///////////////////////////////////////Function to adjust the time//////////////////////////////////
void time()                             
{
    int tmp=1,mins=0,hors=0,secs=0;
    while(tmp==1)
    {
     off=0;
     if(digitalRead(cge)==0)
     {
      Hor++;
      if(Hor==24)
      {
       Hor=0;
      }
     }
     lcd.clear();
     lcd.setCursor(0,0);
     lcd.print("Set Alarm Time ");

    lcd.setCursor(0,1);
    if(Hor<=9)
    lcd.print("0");
    lcd.print(Hor);
    lcd.print(":");
    lcd.print(Min);
    lcd.print(":");
    lcd.print(Sec);
    delay(200);
    lcd.setCursor(0,1);
    lcd.print("  ");
    lcd.print(":");
    lcd.print(Min);
    lcd.print(":");
    lcd.print(Sec);
    delay(200);
    if(digitalRead(set)==0)
    {
      hor=Hor;
      EEPROM.write(add++,hor);
     tmp=2;
     while(digitalRead(set)==0);
    }
    }
    
    while(tmp==2)
    {
     if(digitalRead(cge)==0)
     {
      Min++;
      if(Min==60)
      {Min=0;}
     }
    lcd.setCursor(0,1);
    lcd.print(Hor);
    lcd.print(":");
     if(Min<=9)
    lcd.print("0");
    lcd.print(Min);
    lcd.print(":");
    lcd.print(Sec);
    lcd.print("  ");
    delay(200);
     lcd.setCursor(0,1);
    lcd.print(Hor);
    lcd.print(":");
    lcd.print("  ");
    lcd.print(":");
    lcd.print(Sec);
    lcd.print("  ");
    delay(200);
      if(digitalRead(set)==0)
      {
       mIn=Min;
       EEPROM.write(add++, mIn);
       tmp=0;
       while(digitalRead(set)==0);
      }
    }
    off=1;
    delay(10);
}
///////////////////////////////////////////function to sound the buzzer//////////////////////////////////
void Buz()
{
  if(digitalRead(set)==0)
  off=0;
  if(off==1)
  {
   digitalWrite(buz,HIGH);
   delay(500);
  
   digitalWrite(buz, LOW);
   delay(500);
  }
}
//////////////////////////////////////////function to compare the alarm time with current RTC time//////////////////
void TimeCheck()
{
  int tem[17];
  for(int i=11;i<17;i++)
  {
    tem[i]=EEPROM.read(i);
  }
  if(Hor == tem[11] && Min == tem[12] && off==1) 
  {
   add=11;
   Buz();
   Buz();
   lcd.clear();
   lcd.print("alarm...........");
   lcd.setCursor(0,1);
   lcd.print("...........alarm");
   Buz();
   Buz();
    }
}
////////////////////////////////////////////////////////////setup///////////////////////////
void setup()
{
 Wire.begin();
 RTC.begin();
 lcd.begin(16,2);
 pinMode(cge, INPUT);
 pinMode(set, INPUT);
 pinMode(mod, INPUT);
 pinMode(buz, OUTPUT);
 digitalWrite(set, HIGH);
 digitalWrite(mod, HIGH);
 digitalWrite(cge, HIGH);
 
   lcd.setCursor(0,0);
   lcd.print("ELECTRONICS HUB");
   lcd.setCursor(0,1);
   lcd.print("  Alarm Clock  ");
   delay(2000);
    
 if(!RTC.isrunning())
 {
 RTC.adjust(DateTime(__DATE__,__TIME__));
 }
}
////////////////////////////////////////////////////////////loop/////////////////////////////////////
void loop()
{
   DateTime now = RTC.now();
   if(digitalRead(mod) == 0)      
   { 
    current();
    time();
    delay(1000);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("  Alarm On");
    delay(2000);
   }
 lcd.clear();
 lcd.setCursor(0,0);
 lcd.print("Time:");
 lcd.setCursor(6,0);
 Hor=now.hour(),DEC; 
 if(Hor<=9)
 {
  lcd.print("0");
  lcd.print(Hor=now.hour(),DEC);
 }
 else
 lcd.print(Hor=now.hour(),DEC);
 lcd.print(":");
 Min=now.minute(),DEC;
 if(Min<=9)
 {
 lcd.print("0");
 lcd.print(Min=now.minute(),DEC);
 }
 else
 lcd.print(Min=now.minute(),DEC);
 
 lcd.print(":");
 Sec=now.second(),DEC;
 if(Sec<=9)
 {
  lcd.print("0");
  lcd.print(Sec=now.second(),DEC);
 }
 else
 lcd.print(Sec=now.second(),DEC);
 lcd.setCursor(0,1);
 lcd.print("Date: ");
 lcd.print(now.day(),DEC);
 lcd.print("/");
 lcd.print(now.month(),DEC);
 lcd.print("/");
 lcd.print(now.year(),DEC);
 TimeCheck();
 delay(200);
}
///////////////////////////////////////////////////////function to get current RTC time//////////////////////////////
void current()
{
  lcd.setCursor(0,1);
  lcd.print(Hor);
  lcd.print(":");
  lcd.print(Min);
  lcd.print(":");
  lcd.print(Sec);
}

Soyons clairs: dans le schéma que tu montres c'est la pin 3 qui est relié au LCD et la pin 9 est reliée à un bouton.
Maintenant, d'après ce que je crois comprendre il ne correspond pas à ton shield.

Donc ce que je t'ai dit reste vrai si tu as connecté une entrée au 5V pas de problème de destruction.

Par contre il y a des choses bizarres dans ton programme et je me demande si tu ne mélanges pas numéro de pin et variables en particulier quand tu écris ça

 if (digitalRead(mod) == 0)

merci Kamil,
tu as probablement raison, mais ce n'est pas moi qui ai écrit cela... c'est tout le problème des nouveaux comme moi qui n'ont que quelques bases de programmation (en C pour ce qui me concerne), et qui pompent des codes sur Internet et essaient pas à pas de les comprendre.
Sus ce code que j'ai pompé à l'adresse que j'ai mis plus haut, lorsque je l'ai téléversé sur ma carte, il ne marchait pas ! il passait directement en demande de saisie de l'heure alors que sur la vidéo du site il devait afficher l'heure.
j'ai regardé vu que la condition if(digitalRead(mod) == 0) menait directement à la prog alarme car mod était defini et initialisé int mod=10;
pour tester j'ai juste remplacé la ligne par int mod=0;,
mais j'en suis là... je ne suis pas allé plus loin pour l'ilnstant car j'ai eu ce souci de branchement au 5v au lieu de gnd
merci encore

Donc mod c'est une entrée, ce n'est certainement pas 0, il faut que tu mettes le n° de la pin ou est connecté ton bouton mod

merci, oui, j'ai compris tu as raison il était = 10 car pin 10... je crois que je suis grave ;o))
Bonne journée à toi

Kamill je voulais encore te remercier (je t'ai mis 1 karma et je t'en ajouterai...
Grace à ton analyse pertinente, j'ai vérifié mon branchement et avec mon shield lcd 5 boutons, sur la pin 10 j'ai 5 volts, donc je ne peux pas brancher mod sur la pin 10...
la pin 10 sur mon shield est reliée à la pin A de l'écran lcd16*2
Bonne journée

Si tu as ce type de shield 5 boutons tu peux utiliser les boutons du shield. La gestion des boutons est un peu particulière, mais tu as des exemples dans les wiki du shield. Par exemple celui ci

hello Kamill,
oui c'est celui là,
j'ai trouvé un tuto iciici/
il correspond bien à ce que je veux apprendre,
je viens de l'installer.
il fonctionne, je vais pouvoir le regarder et comprendre comment ca marche pour l'adapter ensuite.
on s'éloigne du sujet initial, donc je vais le cloturer résolu
merci à toi pour ta contribution
bonne journée
LuckyMaxou

C'est cool. Bonne continuation :slight_smile: