Тёмный
No video :(

Arduino UNO etc : Rythmer différentes actions avec millis() et micros() pour éviter d'utiliser delay 

Eric PERONNIN
Подписаться 39 тыс.
Просмотров 25 тыс.
50% 1

Опубликовано:

 

4 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 69   
@olivierj.2435
@olivierj.2435 3 года назад
Incroyable qu'une chaîne de cette qualité n'ait pas plus d'abonnés. Merci pour votre travail monsieur Peronnin
@rodolphe8859
@rodolphe8859 Год назад
Merci encore de rendre cette discipline accessible à ceux qui n'ont pas eu cette chance de faire des études dans ce domaine
@user-cz6mk2lk4z
@user-cz6mk2lk4z 8 месяцев назад
Cette vidéo a été (pour moi) particulièrement instructive. Merci M.Peronnin
@thierryherve9811
@thierryherve9811 Год назад
Vraiment excellent. Très bonne pédagogie.
@Cubdadure
@Cubdadure 3 года назад
Vous êtes absolument incroyable !! Une vidéo un jour, des commentaires, des échanges et le lendemain une vidéo « corrective » prenant en compte le tout. Je ne peux que dire « bravo, merci et respect »
@EricPeronnin
@EricPeronnin 3 года назад
Je ne peux décemment pas laisser des éléments erronés dans mes vidéos. Les commentaires sont une vraie richesse. Je regrette vraiment que RU-vid ne permette pas de mettre à jour une vidéo. Les vidéos taguées éducatives devraient offrir cette possibilité. Merci pour votre message.
@gerardkia6508
@gerardkia6508 3 года назад
Je partage complétement. Bravo et merci
@ektoplazm6537
@ektoplazm6537 7 месяцев назад
Très intéressant comme exercice pour un débutant. Vous auriez pu parler de la notion de mono-coeur pour expliquer le bannissement de la fonction delay(), et la notion de macro concernant basculeLED. J'aurais aussi voulu voir la combinaison de millis et micro (avec modulos) pour obtenir de la précision sur 49 jours ^^. Dommage, je vais devoir réfléchir !! edit : voir la vidéo +2 suivante qui explique la gestion des overflow de variables.
@marcabentin4438
@marcabentin4438 2 года назад
la première fois j'avais pas tout compris cette fois ci c'est beaucoup plus clair preuve que les cours sont profitables merci beaucoup 😀
@patrickdelpit2289
@patrickdelpit2289 Год назад
Vidéos toujours très intéressantes ! La pédagogie est toujours au rendez-vous. Bravo
@benjamin3682
@benjamin3682 2 года назад
Bonjour, Merci, car la qualité du fond et de la forme sont super.
@ZinzinsIA
@ZinzinsIA 2 года назад
super vidéo c'est vraiment de l'or des explications aussi fouillées ! petite astuce pour ceux qui voudraient remplacer rapidement millis par micros on peut faire ctrl+f on tape l'expression qu'on veut remplacer (millis ici) et on indique celle qui doit la remplacer (micros) et y a plus qu'à appuyer sur tout remplacer
@alladiagne2291
@alladiagne2291 4 месяца назад
Merci pour ce magnifique travail
@stephanedezons3488
@stephanedezons3488 3 года назад
Bonjour et merci pour vos vidéo ! Il est parfois difficile d'obtenir des informations claires sur des concepts de base qui méritent néanmoins d'être bien compris et vous le faites très bien ! Encore merci !
@EricPeronnin
@EricPeronnin 3 года назад
Merci Stéphane. Et si un concept venait à moins bien passer, n'hésitez pas à le signaler.
@pascaldemarichalar8131
@pascaldemarichalar8131 9 месяцев назад
Bonjour, Bravo pour vos vidéos !
@talham8331
@talham8331 2 года назад
Merci pour l effort el la méthode d explication
@alaincplx6124
@alaincplx6124 3 года назад
Merci beaucoup pour ces vidéos très pédagogiques
@navarremicheluc6570
@navarremicheluc6570 2 года назад
Meme avis (que Olivier J)... j aborde en debutant complet Arduino et decouvre par ce biais le langage C. encore merci pour tout le travail en amont ! Pouce, pouce pouce et re-pouce !! ;-)
@fabricemotard4312
@fabricemotard4312 3 года назад
Très bonne vidéo simple et efficace ! Bravo encore 👏👏
@adamaadam8073
@adamaadam8073 3 года назад
Vidéo de qualité, comme d'habitude. Hâte de voir les videos montrant comment utiliser les moteurs
@EricPeronnin
@EricPeronnin 3 года назад
Merci. Pour les moteurs, ça viendra mais ce n'est pas pour demain...
@thierryjean8726
@thierryjean8726 3 года назад
Bonjour et merci pour la qualité des explications. Personnellement plutôt que "dernierRouge = dernierRouge + DEMI_PERIODE_ROUGE;" j'aurais écrit " dernierRouge = millis();" ce qui aurait ajouter une erreur sur le long terme qu'il n'y a pas avec ta solution !
@paulragot6155
@paulragot6155 3 года назад
Bonsoir Eric, MERCI pour cette vidéo qui m'a été très profitable. En effet, je suis parti du cahier des charges et j'ai essayé de réaliser ce qui était demandé. J'ai eu une approche algorithmique différente pour arriver au même résultat. J'ai eu particulièrement des difficultés pour gérer l'overflow lorsque le compteur repasse à zéro. Ta solution est plus élégante, plus simple et plus concise que la mienne. Ton code m'a rafraîchi la mémoire sur la bonne utilisation des define : - convention utile, les mots définis sont en majuscules, - et les "define" paramétrés d'instructions sont convertis lors de la première passe du compilateur. disgression amusante : j'avais oublié d'initialiser les ports de sortie (pinMode ... OUTPUT) et bien cela fonctionnait quand même, mais avec une luminosité plus faible. Cordialement
@EricPeronnin
@EricPeronnin 3 года назад
Très intéressante ta dernière remarque. Il y a une explication en plus. Sauras-tu la trouver ? Si d'autres lisent ces échanges, j'attends votre proposition d'explication. Pas très difficile mais il faut regarder le fonctionnement de l'ensemble du bloc entrée/sortie, ce que je n'ai pas encore présenté (figure 14.2 de la datasheet).
@paulragot6155
@paulragot6155 3 года назад
@@EricPeronnin Désolé, pour le buffer de sortie, je n'ai aucune idée sur le sujet. En revanche, dans ta vidéo suivante (pushbutton) j'ai bien compris les tensions sur VIN.
@EricPeronnin
@EricPeronnin 3 года назад
En fait, quand la broche est en entrée, l'activation de la résistance de pullup se fait par une écriture sur la sortie. Donc dans ton programme tu actives et désactives périodiquement la résistance de pullup. Comme elle est assez élevée, la LED s'allume peu lorsque la résistance de pullup est activée.
@jfmahe1407
@jfmahe1407 3 года назад
Merci.
@technophile01
@technophile01 3 года назад
Salut professeur ! J ai vu cette vidéo sur PC la nuit dernière : Magistral ! J ai compris enfin comment utiliser la fonction millis . Vous l avez expliqué mieux que quiconque (à ma connaissance). Je m'abonne à votre chaîne et j attends avec impatience les vidéos suivantes..
@EricPeronnin
@EricPeronnin 3 года назад
Merci. Et celle-ci est une mise à jour de celle de cette nuit que j'ai du supprimer.
@technophile01
@technophile01 3 года назад
@@EricPeronnin j ai remarqué ce matin sa suppression et je n ai pas compris. Je reverrai cette deuxième version. Salut !
@bernardrousseau7303
@bernardrousseau7303 3 года назад
Bravo Eric pour la clarté de tes explications qui impliquent pour toi de naviguer entre les écrans de façon surprenante, "chapeau". Une question pourtant, je débute et comment connaitre l'ordre des vidéos qui ne concernent qu'arduino?
@EricPeronnin
@EricPeronnin 3 года назад
Bonjour Bernard et merci pour ton commentaire. Pour l'ordre, le plus simple est de consulter la playliste : ru-vid.com/group/PLuQznwVAhY2V7Uh0aHOgBvaiqRw9VeCis
@bernardrousseau7303
@bernardrousseau7303 3 года назад
Merci de ta réponse, bon courage pour la suite!!
@yveslemoine5724
@yveslemoine5724 Год назад
Bonjour et merci pour cette vidéo très intéressante, serait-il possible d'avoir un exemple similaire mais avec les demi périodes réglables par deux potentiomètres ?
@momokad7606
@momokad7606 3 года назад
enfin j ai compris
@stephanefouret304
@stephanefouret304 3 года назад
Bonjour Eric , toujours de bonnes videos , j'"ai suivi et appliqué ton tuto pas moyen de me servir de #define avec la fonction basculeLED , j'y suis arrivé en faisant une void , on attend la prochaine .Je vais tenter de refaire en definissant une periode haute differente de la periode basse..
@EricPeronnin
@EricPeronnin 3 года назад
Bonsoir. L'utilisation d'un define comme ceci fait parti des possibilité standard en C et C++. Je vous invite à copier coller le code source disponible après la vidéo sur la page geii.eu/index.php?option=com_content&view=article&id=235&Itemid=945 Il n'y a aucune raison pour que cela ne fonctionne pas. L'usage sous la forme d'une fonction est bien sûr possible comme vous l'avez fait. Tenez moi au courant.
@tohouenoucomlangildas7434
@tohouenoucomlangildas7434 Год назад
Bonjour Monsieur Merci pour vos tutoriels; cela aide énormément J'ai une petite difficulté que j'aimerai vous soumettre. En effet, j'aimerai faire fonctionner deux LED en utilisant la fonction millis mais je n'y arrive pas. Je veux juste qu'au démarrage, que la première LED reste allumé pendant 5minutes et dès qu'elle s'éteignes, la seconde commence par clionter (20 secondes éteinte et 1 minutes allumé). Je ne suis pas un bon programmeur, mais j'espère trouver de l'aide ici.
@pierreolivier7022
@pierreolivier7022 2 года назад
BONJOUR es que les commande servo_moteur ne vont pas perturbé la fonction millis() merci pour votre réponse et je me suis abonné et partagé. a bientôt.
@tetar8419
@tetar8419 3 года назад
Bonjour super la vidéo J’essai de reprendre votre code pour l’utiliser a mes besoin mais je bloque ou alors je me mélange J’ai une led bleu qui va être allumé 1s Quand la led bleu s’éteint Je veux que la led rouge s’allume pendant 3s Quand la led bleu s’éteint la led rouge reviens pendant 1s Etc a l’infini Es que vous pouvez m’éclairer Je viens de découvrir votre chaîne grâce à cette vidéo et franchement je reprend tout votre playlist au top même si s’est vraiment pousser pour un débutant comme moi
@doubytchou4254
@doubytchou4254 3 года назад
Bonjour, Merci pour ces vidéos très enrichissantes même quand on connais un peu l'univers Arduino. Avec l'apport "d’écriture magique"!! J'ai une petite question : Quel est l’intérêt d'utiliser une variable "static" dans la boucle plutôt que de la declarer celle-ci en "public" dans ce genre de programme qui ne comporte au final qu'une seule boucle? En vous remerciant Cordialement
@EricPeronnin
@EricPeronnin 3 года назад
Bonjour. L'intérêt est généralement d'éviter l'usage de variables globales (donc public) quand ce n'est pas utile. L'objectif est de prendre les bonnes habitudes de ne pas tout visible partout quand ce n'est pas utile.
@miguelmeyran2278
@miguelmeyran2278 3 года назад
Excellente vidéo ! Petit détail : vous parlez de téléverser le programme à travers le Wifi après avoir réglé les problèmes de rebonds du bouton poussoir, mais je ne vois rien à propos du téléversement par Wifi. Miguel
@EricPeronnin
@EricPeronnin 3 года назад
Bonjour. C'est présent dans une vidéo sur l'ESP8266 car il faut un composant équipé du WiFi
@ownedbyeasan
@ownedbyeasan 3 года назад
Bonjour, avant tout un grand merci pour vos vidéos très pédagogiques et ludiques ! Je n'ai pu m'empêcher de constater que la vidéo n°6 de la playlist "Programmer en C avec Arduino" était classée en privé, est-ce volontaire?
@EricPeronnin
@EricPeronnin 3 года назад
Bonjour. C''était une première version d'une vidéo que j'ai finalement refaite et qui a pris la relève. J'ai supprimé la vidéo de la playliste suite à votre remarque. Merci
@PhiphiBelgium
@PhiphiBelgium 3 года назад
Merci Eric pour cette intéressante vidéo :) J'ai malgré tout quelques questions: - dans le if((millis() - dernierRouge) >=DEMI_PERIODE_ROUGE){ dernierRouge = dernierRouge + DEMI_PERIODE_ROUGE; } Comment pourrait on élégamment, gérer l'overflow du compteur? (nous arrivons tôt ou tard dans la situation ou millis() < dernierRouge ? non?
@EricPeronnin
@EricPeronnin 3 года назад
Bonjour. L'overflow est déjà géré par le principe de codage des entiers non signés. Si vous exécutez ceci : Serial.begin(115200); uint8_t millis = 10; uint8_t dernier = 250; uint8_t diff = millis - dernier; Serial.println(diff); Vous verrez 16 apparaître dans le terminal, ce qui correspond bien à la différence que l'on aurait obtenu sans l'overflow, c'est à dire avec millis = 256+10 = 266 Si maintenant vous voulez calculer la soustraction 10 - 250, il va falloir ajouter un 9è bit (qui n'existe pas sur 8 bits donc) à 10 pour calculer la soustraction et finalement calculer 266 - 250 = 16
@PhiphiBelgium
@PhiphiBelgium 3 года назад
@@EricPeronnin Merci beaucoup pour l'éclaircissement :)
@alainbreysse4995
@alainbreysse4995 3 года назад
Bonjour Eric, Comme d'habitude très bonne vidéo, on attend la suite avec impatience. Pouvez-vous me donner votre avis sur l'analyseur logique "Inno-Maker LA2016". Encore merci pour cette vidéo.
@EricPeronnin
@EricPeronnin 3 года назад
Bonsoir et merci pour le commentaire. Je ne connais pas cet analyseur. Je regarderai...
@talham8331
@talham8331 2 года назад
Est ce qu' il un temps d erreur pour le temps de l interval .ex interval d allumage 150000+/- 30 ms
@abdoulrazakharo1183
@abdoulrazakharo1183 2 года назад
Salut Monsieur Eric, merci pour le contenu très enrichissant que vous nous partagez ;j'ai utilisé la fonction millis dans un programme qui n'a pas fonctionné et je voudrais demander votre aide; en fait c'est un programme qui va permettre à deux relais de s'activer au même? moment quand on appui sur un bouton poussoir (on peut utiliser un capteur aussi) avec une temporisation différentes ;donc les deux relais se désactive à des moments différentes;15 seconds pour l'autre et 2 minutes pour le dernier relais ; le résultat que j'obtient est la suivante ;quand j'appuie sur le bouton poussoir les relais 1et 2 se désactive respectivement entre 15seconde et 2 minutes mais au relâchement ils prennent la même durée pour se désactivé ;pourtant je voudrais qu'il se désactive en même temps voici mon programme const byte relais1 = 7; const byte relais2= 8; const unsigned long relais1interval = 15000; const unsigned long relais2interval = 12O000; unsigned long relais1timer; unsigned long relais2timer; int Boutton_poussoir=2; void setup () { pinMode (relais1, OUTPUT); pinMode (relais2, OUTPUT); pinMode(Boutton_poussoir,INPUT_PULLUP); relais1timer = millis (); relais2timer = millis (); } void basculer_relais1() { if (digitalRead (Boutton_poussoir) == LOW) digitalWrite (relais1, HIGH); else digitalWrite(relais1,LOW); relais1timer = millis () } void basculer_relais2 () { if (digitalRead (Boutton_poussoir) == LOW) digitalWrite (relais2, HIGH); else digitalWrite(relais2,LOW); relais2timer = millis (); } void loop () { if ( (millis () - relais1timer) >=relais1interval) chronorelais1 (); if ( (millis () - relais2timer) >= relais2interval) chronorelais2 (); }
@rayanetournier6260
@rayanetournier6260 2 года назад
Bonjour, que penser de la solution qui teste millis modulo periode == 0 ? si le reste de la division est nul, on switch l'état de la LED concernée. C'est un plaisir d'avoir pu trouver vos vidéos M. Peronnin!
@EricPeronnin
@EricPeronnin 2 года назад
Bonjour Rayane. Le modulo est un bon moyen si la période est une puissance de 2. Si ce n'est pas le cas, l'arrivée en butée de millis() ou de micros() aboutira au déclenchement du modulo avec une erreur. Comme ce n'est pas si souvent que cela, il y a de nombreux usages où cela fera l'affaire.
@laurelehardy1282
@laurelehardy1282 Год назад
bonjour, super j'ai tout compris mais ce que je n'arrive pas c'est par exemple faire clignoter 3 fois une seconde toutes les 20 secondes. là oui je bloque
@alexisdelauzun4015
@alexisdelauzun4015 3 года назад
Bonjour Éric, Tout d'abord merci de prendre le temps d'expliquer toutes les subtilités sur vos vidéos. J'ai essayé d'utiliser des millis() pour chronometrer le temps de fonction de mes entrées Arduino. Sous le programme Arduino cela fonctionne. Mais lorsque je copie/colle sur vscode j'ai des erreurs au niveau des fonctions qui utilisent la fonction millis(). Y a t'il une Bibliothèque à rajouter avec vscode ? Ou avez-vous une autre solution pour ce problème ? Merci par avance Bonne fin de week-end à vous ! Cordialement Alexis
@EricPeronnin
@EricPeronnin 3 года назад
Bonsoir Alexis. Difficile de répondre comme ça. Quelle version utilisez-vous pour VS Code ? Utilisez-vous PlatformIO ou l'extension Arduino Microsoft ?
@loicbon
@loicbon 3 года назад
Bonjour, je compte me lancer avec Arduino, pour un projet où une action devra se produire plusieurs minutes après avoir appuyé sur un bouton. Pour utiliser la fonction millis() que vous présentez, une carte Arduino uno suffit-elle? Je pose cette question car je vois qu'il existe des cartes horloge additionnelle Je vous remercie par avance pour votre réponse.
@EricPeronnin
@EricPeronnin 3 года назад
Bonjour. Oui la fonction millis est largement suffisante si vous n'avez pas besoin d'une grande précision, ce qui est souvent le cas. Si vous aviez besoin de connaître l'heure réelle à tout instant, il faudrait alors ajouter une des cartes que vous évoquez. Elles ont aussi un autre intérêt, celui d'abaisser la consommation de l'ensemble avec la possibilité de réveiller la carte Arduino au moment opportun en générant une demande d'interruption.
@loicbon
@loicbon 3 года назад
@@EricPeronnin Merci
@wassinimag1031
@wassinimag1031 2 года назад
merci pour la qualité d"enseignement S.V.P j'ai 2 programme 1 pour carte RFID( contrôle accès immeuble autre code pour éclairage immeuble avec 5 buttons poussoir séparément les codes fonctionne bien mais quand j' assemble les 2 code l'un des deux fonctionne et je voudrait que fonctionne en mémé temps pouvait vous m'aider pour çà merci pour
@miragebleu5055
@miragebleu5055 3 года назад
Je pense qu'il faut aussi prendre en consideration les cycles machine des fonctions micro et millis, non?
@AmesisProject
@AmesisProject 2 года назад
Hello ! tu as oublié de mettre ton lien ici. Je te mets un marqueur si tu souhaite le mettre 09:45. merci pour tes vidéos, je me forme bien la. Je bouffe la série arduino. 👍 Tiens je te fais gagner du temps. Tu as énoncé le static ici ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-APN_W0-hb5A.html a 16:59
@EricPeronnin
@EricPeronnin 2 года назад
Bonjour. Merci pour ton commentaire. Comme il y a déjà une fiche pour la vidéo sur les variables à 08:52, il n'est pas possible d'en remettre une en 09:32... à 45.
@AmesisProject
@AmesisProject 2 года назад
@@EricPeronnin ha yess je vois !
@micheldelsem7022
@micheldelsem7022 3 года назад
ETcetera et pas ECcetera!!!
@EricPeronnin
@EricPeronnin 3 года назад
Oui. Ou est le problème ? J'écris etc à chaque fois sur mes diapos de présentation...
Далее
У ГОРДЕЯ ПОЖАР в ОФИСЕ!
01:01
Просмотров 3,6 млн
How to get Spongebob El Primo FOR FREE!
01:36
Просмотров 11 млн
Arduino Sketch with millis() instead of delay()
14:27
Просмотров 227 тыс.
EB_#263 Introduction au FPGA
23:21
Просмотров 39 тыс.
Arrêtez d’utiliser Google Drive et iCloud
14:44
Просмотров 413 тыс.
У ГОРДЕЯ ПОЖАР в ОФИСЕ!
01:01
Просмотров 3,6 млн