Aller directement au contenu

Arduino

11 Sujets 69 Messages

<p>A l'image du Raspberry Pi : découvrez le monde du micro-hardware et améliorez vos compétences en apprenant par la pratique ! <a title="Arduino" rel="external nofollow" href="http://www.arduino.cc/">www.arduino.cc</a></p>

Cette catégorie peut être suivie depuis le web social ouvert via le pseudo [email protected]

  • Guide pour bien débuter sur Arduino / Electronique !

    1
    0 Votes
    1 Messages
    2k Vues
    LeplayzeL
    Salut, Voilà, je suppose que beaucoup de gens connaissent arduino / Raspberry, et généralement les gens ont peur de se lancer sur ces 2 cartes à cause des connaissances électronique nécessaire pour pouvoir faire de bon projet derrière (Vivarium automatisé, domotique, etc...). J'ai donc débuter un guide sur Arduino, ou je présente le soft, le langage ainsi que les divers composants électroniques qui permettront à termes de faire des trucs ultra sympas pour pas chère, j'ai déjà fait des tutos robotiques etc... Ce guide fait suite à l'ensemble des tutoriels que j'ai pu écrire sur melinyel, mais n'ayant plus le temps, je me rabats sur le format vidéo, bien plus simple à mettre en oeuvre Voilà donc si cela vous intéresse voici une vidéo typique (Début du guide) : https://goo.gl/PsJi7Z Actuellement les vidéos sortent deux fois par semaine N'hésitez pas à donner votre avis, mais également si vous désirez des projets/tuto de me les demander ( ça me donnera des idées aussi  ) Actuellement j'ai déjà sortit, 2-3 guides de base tel que le chenillard, le PWM, l'utilisation d'un capteur de t° etc... Bon projet à tous
  • Rendu 3D sur l'écran d'un Nokia 5110

    4
    0 Votes
    4 Messages
    4k Vues
    cylgomC
    Salut Melinyel ! J'étais en train de me demander quoi faire de mon écran de Nokia 5110 acheté sur les bons conseils d'Oxodao (ils coûtent moins de 3$ sur ebay), quand je me suis dit qu'écrire un petit script pour faire le rendu d'objets 3D en fil de fer pouvait être extrêmement sympatique . Voici le résultat de mes expériences en vidéo (c'est "tourné" avec les moyens du bord ne faites pas attention à la clef USB qui sert de support...) : https://www.youtube.com/watch?v=LCFElyREi2c   Pour faire la même chose vous avez simplement besoin d'une Arduino UNO, de l'écran d'un Nokia 5110 recyclé pour bidouilleurs, de quelques cables pour breadboard et d'effectuer les branchements comme suit (oui je suis gentil je fais des jolis schémas -_- ) : ![1439125157-aw3r-wiring2.png](<base_url>/applications/sslimageproxy/interface/image.php?url=http://image.noelshack.com/fichiers/2015/32/1439125157-aw3r-wiring2.png) Ensuite, vous pouvez récupérer mon programme pour l'arduino sur github. Par défaut il contient le même modèle que sur la vidéo (merci blender :rolleyes: ), mais si vous êtes sous linux vous pouvez le changer !   J'ai aussi écrit un petit script bash pour convertir n'importe quel .obj en code utilisable par mon sketch arduino. il vous suffit de l'exécuter en précisant un fichier .obj en argument, par exemple : # sh arrobj.sh ./icosphere.obj Et il donnera le code à coller dans la "copy-paste zone" du sketch arduino : -------------------------------------------------------------- X>=- Starting .OBJ conversion -=<X X>=- This script only supports triangular faces -=<X X>=- Remember to triangulate your object before exporting -=<X -------------------------------------------------------------- const unsigned char dots = 12; const unsigned char faces = 20; float objDotsMod[dots][3] = {}; const float objDots[dots][3] = { {0.000000, -1.000000, 0.000000}, {0.723600, -0.447215, 0.525720}, {-0.276385, -0.447215, 0.850640}, {-0.894425, -0.447215, 0.000000}, {-0.276385, -0.447215, -0.850640}, {0.723600, -0.447215, -0.525720}, {0.276385, 0.447215, 0.850640}, {-0.723600, 0.447215, 0.525720}, {-0.723600, 0.447215, -0.525720}, {0.276385, 0.447215, -0.850640}, {0.894425, 0.447215, 0.000000}, {0.000000, 1.000000, 0.000000} }; unsigned char objFaces[faces][3] = { {1, 2, 3}, {2, 1, 6}, {1, 3, 4}, {1, 4, 5}, {1, 5, 6}, {2, 6, 11}, {3, 2, 7}, {4, 3, 8}, {5, 4, 9}, {6, 5, 10}, {2, 11, 7}, {3, 7, 8}, {4, 8, 9}, {5, 9, 10}, {6, 10, 11}, {7, 11, 12}, {8, 7, 12}, {9, 8, 12}, {10, 9, 12}, {11, 10, 12} }; Il convient par contre de prendre quelques précautions : Premièrement, le script bash ne supporte que les faces triangulaires, assurez-vous de ne pas avoir de faces carrées dans votre fichier obj ! Sous blender, il vous suffit d'appuyer sur la touche espace et de chercher la commande triangulate pour être sur. Deuxièmement, attention à ne pas charger des fichiers trop gros. De toute façon arduino ne le compilera pas s'il prend trop de mémoire. Dernière précaution, attention à ne pas charger d'objets avec des coordonnées comportant trop de chiffres avant la virgule. Les variables seront trop petites pour les contenir, et vous ne le verriez de toute façon pas sur l'écran si tous ses points dépassent 100 en coordonnées. Je ne vais pas détailler le fonctionnement de la chose pour l'instant, mais si ça vous intéresse dites-le moi je rédigerais peut-être une explication détaillée B) . En tous cas je vous recommande vraiment cet écran il est très facile à bidouiller, si vous avez 3$ à dépensez achetez-le vous ne le regretterez pas.
  • [ELECTRONIQUE GENERAL] Matos pas cher

    4
    0 Votes
    4 Messages
    1k Vues
    OxodaoO
    Wesh la mifa bien? Bref aujourd'hui je propose à tout les electronic engineers une solution un peu plus simpa que Adafruit/E14 et autre major du domaine electronique, une petite astuce qui permet d'économiser BEAUCOUP. En effet, la plus part des produits d'Adafruit ne sont pas leurs créations à proprement parlé, et on peu donc trouver les originaux / des clones sur Ebay facilement, sans pour autant qu'ils marchent moins bien. De plus les frais de ports d'A sont exhorbitant (16$ au minimum, pour deux leds ça fait cher, sans compter le temps d'attente de livraison) Il suffis pour ça d'une petite recherche de votre produit sur Ebay en achat direct, prenez de préférence les vendeurs "Top Fiabilité" qui sont recommandés; En général les produits viennent de Chine. En plus, la plus part des produits d'ebay n'ont pas de frais de port ou alors ils sont très faibles. Voici des exemples concrets: Nokia 3310 LCD (Arduino / Raspberry compatible): Adafruit = 10$ (8,9€), Ebay = 2.30$ (2.08€) Arduino: Arduino.cc (Micro, Officiel) = 18€, Ebay (Nano, Clone) = 2.99€ [Ce ne sont pas les mêmes modèles mais ils sont similaires] ESP8622 (Module wifi): Adafruit = 6.95$ (6.2€), Ebay = 2.89$ (2.69€) { Attention cependant aux arduinos, si vous commandez ce genre de materiel, soyez sur d'être déjà habitué aux officiels, en effet ceux-ci ont un chipset CH340G au lieux du classique FTDI ce qui rends leurs connexion un peu plus compliquée sous Windows et Mac (Pas linux ) } Cependant, ils sont moins bien emaballés, pas de tracking pour la plus part, mais les vendeurs sont en général professionels et propose un refund ou un retour. Voici les vendeurs que je peux conseiller (Attention, ni moi ni Melinyel ne prenons la responsabilité de vos commandes, si le produits n'arrive pas ou est défectueux, contacter le vendeur): - alice1101983 Si vous avez testé d'autres vendeurs et que vous êtes satisfait, n'hésitez pas à me le dire que je l'ajoute à la liste
  • [Débutant] Les interruptions

    6
    0 Votes
    6 Messages
    3k Vues
    BrokeosB
    Les interruptions c'est quoi ? C'est une fonction qui est définis sur une broche. Lorsque la broche change d'état (paramètrable dans le code), le code en cour est stoppé et le sous programme mis en argument vas être démarré. Utilité: Je devais faire un chrono (pour la course en cours, si des gens connaissent). Seulement, il fallait ce dire: la voiture peut partir à tout moment. Alors au début j'avais dans l'idée de mettre une condition dans le bloc while(), mais très mauvaise idée! Surtout que la course est au ms près! Alors j'ai découvert les interruptions . Mise en place: La fonction de arduino est: attachInterrupt( pin, ISR, mode); pin -> entre 0 et 5, elle correspond à des broches définis suivant le type de carte: [image: i4PPgwH.png] ISR -> C'est le sous programme à executé, il dois être sans argument. Mode -> Mode de détection: LOW, CHANGE, RISING, FALLING,  HIGH. Exemple de code: [image: VbPWF2c.png] Mon code de chronométre "normal": #include <Wire.h> #include <Adafruit_RGBLCDShield.h> Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield(); volatile int time_start = 0; volatile int time_stop = 0; volatile int time_final = 0; volatile boolean isrunning = false; volatile boolean isended = false; boolean display_wait = false; boolean display_running = false; boolean display_ended = false; void setup() { lcd.begin(16, 2); attachInterrupt(0, count_start, RISING); attachInterrupt(1, count_stop, RISING); lcd.print("En attente..."); } void loop() { if (isrunning == true){ if (display_running == false){ display_wait = false; display_ended = false; display_running = true; lcd.clear(); lcd.print("Comptage..."); } }else if (isended == true){ if (display_ended == false){ display_wait = false; display_running = false; display_ended = true; lcd.clear(); lcd.print("Temps : " + time_final); lcd.print(" ms"); } }else{ if (display_wait == true){ display_running = false; display_ended = false; display_wait = true; lcd.clear(); lcd.print("En attente..."); } } } void count_start() { if (isrunning == false) { display_running = false; display_ended = false; display_wait = false; time_start = millis(); isended = false; isrunning = true; } } void count_stop(){ if (isrunning == true){ time_stop = millis(); time_final = time_stop - time_start; isended = true; isrunning = false; } } Mon code de chronométre "POO"(plus légé et plus rapide): #include <Wire.h> #include <Adafruit_RGBLCDShield.h> enum Status{ isNull, isWaiting, isRunning, isEnded }; struct Time { int Start; int Stop; int Final = Stop - Start; }; Status chrono_status; Status display_status; volatile Time chrono_time; Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield(); void setup(){ lcd.begin(16, 2); attachInterrupt(0, chrono_start, RISING); attachInterrupt(1, chrono_stop, RISING); display_status = isNull; chrono_status = isWaiting; } void loop(){ switch (chrono_status) { case isWaiting: if (display_status != isWaiting){ lcd.clear(); lcd.print("En attente..."); display_status = isWaiting; } break; case isRunning: if (display_status != isRunning){ lcd.clear(); lcd.print("Comptage..."); display_status = isRunning; } break; case isEnded: if (display_status != isEnded){ lcd.clear(); lcd.print("Temps: "); lcd.print(chrono_time.Final); lcd.print(" ms"); display_status = isEnded; } break; } } void chrono_start() { if (chrono_status != isRunning){ chrono_time.Start = millis(); chrono_status = isRunning; } } void chrono_stop() { if (chrono_status == isRunning){ chrono_time.Stop = millis(); chrono_status = isEnded; } } Voila, j'espère que ce petit tuto vous a plus! Pour plus d'informations: http://www.arduino.cc/en/Reference/AttachInterrupt
  • Faire une mise à l'échelle : Fonction Map

    5
    0 Votes
    5 Messages
    4k Vues
    LeplayzeL
    Bonjour à tous ! Petit tuto sur une fonction que j'ai découvert aujourd'hui même ! La fonction map ! Objectif du tuto : Faire varier la luminosité d'une led via un potentiomètre. et ce via un pwm. Lexique : PWM : Pulse with modulation, on fait varier la tension moyenne au borne d'une sortie. Par exemple avec une tension de 10V et un pwm à 50% on aura une tension moyenne de 5V. Sur arduino cette valeur varie de 0 à 255 données (8bits) Potentiomètre : Résistance variable, 10 bits de 0 à 1023. => Mise à l'échelle de 0 à 1023 pour 0 à 255. Le programme : [image: f569d3a516.png] => Fonction map : La mise à l'échelle s'effectue automatique ici. => Donc on met la variable, la première échelle dans notre cas le potentiomètre de 0 à 1023 et ensuite l'échelle que l'on veut ici le pwm de 0 à 255. On pourrait tout aussi bien prendre 50-300 etc... => int led = 3 :  LED sur la pin 3 => Potentiomètre sur la pin A0 Car valeur variable ! Ensuite on définit les 2 variables => La led est configurer comme sortie val : Valeur du potentiomètre Val : Valeur après la mise à l'échelle analogWrite(led1Val); On écrit la valeur obtenu à la led. et enfin un petit délai pour la variation Et voilà, avec une simple fonction map, vous avez effectuer votre mise à l'échelle ! Code : https://www.mediafire.com/?cif8h6he89rs7f3
  • [Cours n°1] Initiation à l'arduino

    6
    0 Votes
    6 Messages
    4k Vues
    LeplayzeL
    [image: arduino-logo.jpg] Salut à tous Voici le premier tutoriel d'une longue série sur le langage arduino. Celui-ci se trouve en C car il est très très très proche du C a quelques variantes près. De plus, ce seront des tutoriels axé Hardware, je laisse au autres le software c'est pas ma passion ça . Donc commençons par le commencement : L'ide d'Arduino peut être directement dl ici : http://arduino.cc/en/Main/Software Voilà vous avez tous ce qu'il faut pour programmer en arduino ... sauf si vous n'avez pas d'arduino, dans ce cas là ... En passant pour le blabla arduino c'est par ici : [http://melinyel.net/index.php/topic/653-arduino-3/](<base_url>/index.php/topic/653-arduino-3/) ![1399926021-page-de-prez.png](<base_url>/applications/sslimageproxy/interface/image.php?url=http://image.noelshack.com/fichiers/2014/20/1399926021-page-de-prez.png) Donc voici l'interface sur lequel nous allons travailler très prochainement. Bref présentation car tout se résume en 3 point ! **1 :**Les fonctions de compilation et de vérification en cas d'erreur dans votre code. **2 :**La fonction moniteur série : Permet d'afficher un message à partir d'arduino sur le pc. Je n'utilise que rarement cette fonction vu que j'ai un écran lcd. **3 :**Le port sur lequel l'arduino est branchée, dans mon cas c'est le COM4. /!\ Si l'arduino n'est pas branché au bon port, votre programme ne sera pas compilé. Pour changé de COM : Outil > Port série et choisissez le bon. La structure typique d'un code : Un aperçu d'un ancien code que j'ai créé y'a moins d'un an : [image: 8JOkq.png] Il y a 3 parties bien distincte : Les variables et les librairies : En gros c'est tout ce qui sera nécessaire pour que le programme fonctionne. Les librairies sont des ensembles de fonction programmé pour vous simplifiez la vie. J'utilise un LCD => J'insère donc la librairie et j'ai plus qu'à utilisé les fonctions que celle-ci me livre. "lcd.print" par exemple, on en reparlera plus tard. La configuration de l'arduino Identifiable via " void setup () " C'est une boucle qui ne se lis qu'une seule fois, au démarrage de l'arduino. On y insère toute la configuration de l'arduino. L'arduino à plusieurs pin digital, il faut les configurées en entrée ou en sortie sois-même. On peut aussi y insérer des messages sur un lcd qui ne sera lu qu'une seule fois. Le programme La partie principale de votre code sera insérer dans un " void loop ()", c'est une boucle qui se répète à l'infinie. Comme dans tout programme Bref voilà pour ce premier tutoriel. Le suivant vous apprendra comment allumer une led ! (Vachement original dis donc ....) Leplayze.
  • Ressources utiles

    3
    0 Votes
    3 Messages
    1k Vues
    SoulalexS
    [image: Arduino_Uno_logo.png] Arduino est un circuit imprimé intégrant un microcontrôleur pouvant être programmé. Pour de petits projets d'électronique, Arduino est un outil très sympa. Je vous propose une petite liste de ressources trouvées sur le web pour vous aider à prendre en main cet objet : Arduino pour bien commencer en électronique et en programmation - OpenClassrooms (Cours + TP)
  • Un vieux projet

    7
    0 Votes
    7 Messages
    2k Vues
    mars073M
    Bonjour à tous, ![logo-47745d1.png](<base_url>/applications/sslimageproxy/interface/image.php?url=http://img110.xooimage.com/files/6/a/7/logo-47745d1.png) Aujourd'hui je vais vous parler d'un de mes vieux projets dont je n'ai jamais eu le temps de finir, il est à l'arrêt comme 10 000 autres de mes projets, j'ai arrêté son développement il y a presque ou plus d'un an, j'ai appelé ce projet "Horion" en référence à une série. Il s'agissait d'un gant assez équipé dont la carte arduino et l'alimentation se situerait au niveau du cœur (proche d'une chemise). J'ai fais des scans de mes croquis et je les ai modifié sur photoshop pour bien voir les traits J'avais imaginais la première version en un cuir dur mais: [image: Num%C3%A9risation_20140903.jpg] mais bon trouvant ça assez sommaire, j'ai après commencé à aller plus dans l'idée d'un gant [image: Num%C3%A9risation_20140904.jpg] Petite réflexion sur le câblage (non aboutis) [image: Num%C3%A9risation_20140905.jpg] Autre réflexion sur la disposition des élèments au niveau de la main: [image: Num%C3%A9risation_20140906.jpg] Croquis de à quoi ça devrait ressembler de l'extérieur [image: Num%C3%A9risation_20140907.jpg] L'autre face avec le trou d'aération car j'avais déjà commencé des essaie et le simili-cuir ça fait transpirer... [image: Num%C3%A9risation_20140908.jpg] Une idée de pavé à l’intérieur de la main, le pouce sert de selecteur et fait contact sur les autres doigts faisant ainsi 12 boutons mais je comptais pas le mettre dans la version finale [image: Num%C3%A9risation_20140909.jpg] Avant-dernière réflexion sur le projet niveau physique, la couture et coudre avec un câble (c'est galère le cuivre...), j'ai pensais à prendre les petits câbles dans un câble ethernet pour le gant mais j'avais pas eu le temps de finir [image: Num%C3%A9risation_20140910.jpg] Après avoir fouillé sur mon bureau j'ai retrouvé un schèma pour le câblage pour faire en sorte que les câbles ne se plient pas de trop voire pas du tout et un petit calcul [image: Num%C3%A9risation_20140911.jpg] petit aperçu de mon câblage super propre *tousse* [image: DSC00094.JPG] la couture pour l'extension au niveau des phalanges [image: DSC00530.JPG] Première partie du gant avec l'index (non-câblé) [image: DSC00533.JPG] J'ai conçu la couture pour que lorsque l'on plie un doigt, une ouverture se fait et vous avez une boule (extension des phalanges) qui en ressort donc vous ne tirez pas sur le simili [image: DSC00536.JPG] [image: DSC00538.JPG] Un test pour vérifier la solidité du cuivre, qui est vraiment moyenne.. d'où le fait du choix de récupération de câble réseau [image: DSC00539.JPG] étant assez maladroit je peux vous dire qu'il est possible de faire passer un fil de cuivre sous la peau... Toutes les coutures ont été faites à la main par moi.. Au niveau logiciel, il y a un genre de multi-tâche expérimentale (un tableau avec des protocoles en gros), un menu pour savoir la température et la lumi, un menu pour la LED (que j'aurai finalement mit une led rgb), un reboot et encore un autre truc mais je ne sais plus ça date trop... Je compte finir ce projet un jour... mais quand ça c'est une autre question xD
  • Arduino <3

    18
    0 Votes
    18 Messages
    4k Vues
    LeplayzeL
    Salut à tous, Je suis choqué par le fais qu'un topic comme celui-ci n'existe pas ici ! Arduino est une pure merveille dans le domaines des µC (Micro-controleur), peu cher et simple d'aprentissage Présentation Arduino est un projet électronique open source de prototypage basé sur une plateforme flexible, autant du coté matériel que logiciel. Il est principalement destiné aux artistes, designers, amateurs, et tous ceux qui s’intéresse à la création d’objets et d’environnements interactifs. L’arduino peut sentir l’environnement en recevant l’apport de capteurs, et interagir en contrôlant de la lumière, des moteurs, des actionneurs et autres. En gros c’est une carte disposant d’une large plage d’entrée sortie, avec un microcontrôleur au milieu. [image: Arduino_Diecimila.jpg] Des personnes utilisent arduino ? J'ai plusieurs projets arduino personnellement, je viens par exemple de programmer un Kart electrique (Grandeur réel) complètement via cette petite carte . Arduino est vraiment sympas pour preuve : http://arduino.cc/en/Reference/HomePage Cette page recueil un nombre incalculable de fonction etc... définis et expliquées très très simplement, c'est idéal pour débuter ! Voilà un exemple de truc que l'on peut faire avec arduino : https://www.youtube.com/watch?v=Dk\_ni3oX-KE
  • [Cours n°3] Programmons un écran LCD : les bases

    7
    0 Votes
    7 Messages
    5k Vues
    LeplayzeL
    Bonjour à tous ! Un nouveau tutoriel arduino, cette fois-ci sur ce genre de petit bijou INDISPENSABLE si on veut faire mumuse avec son arduino ! Les afficheurs à cristaux liquides, autrement appelés afficheurs LCD (Liquid Crystal Display), sont des modules compacts intelligents et nécessitent peu de composants externes pour un bon fonctionnement. Ils consomment relativement peu (de 1 à 5 mA), sont relativement bons marchés et s'utilisent avec beaucoup de facilité. ![Arduino-lcd%2016x2.jpg](<base_url>/applications/sslimageproxy/interface/image.php?url=http://colmard.com/images/Arduino-lcd 16x2.jpg) ![lcd_pinout.png](<base_url>/applications/sslimageproxy/interface/image.php?url=http://www.aurel32.net/elec/lcd_pinout.png) --------------- Partie électrique ---------------- Bien plus simple que le tutoriel précédent : Il n'y a que du câblage [image: 8SP48.png] Et voilà le petit schémas fait par mes soins. Il y a 3 types de commande pour un LCD : 8Bits, 4Bits(Que j'utilise ici) et série. Mode 8 bits : Dans ce mode 8 bits, les données sont envoyées à l'afficheur sur les broches D0 à D7. On place la ligne RS à 0 ou à 1 selon que l'on désire transmettre une commande ou une donnée. Il faut aussi placer la ligne R/W à 0 pour indiquer à l'afficheur que l'on désire effectuer une écriture. Il reste à envoyer une impulsion d'au moins 450 ns sur l'entrée E, pour indiquer que des données valides sont présentes sur les broches D0 à D7. L'afficheur lira la donnée sur le front descendant de cette entrée. Si on désire au contraire effectuer une lecture, la procédure est identique, mais on place cette fois la ligne R/W à 1 pour demander une lecture. Les données seront valide sur les lignes D0 à D7 lors de l'état haut de la ligne E. (source: aurel32) Mode 4 bits : C'est celui que l'on utilise le plus, pourquoi ? Parce qu'il n'y a que 4 broches à connecté à l'arduino, et croyez moi, 4 broches au lieu de 8 c'est énorme ! On utilise les bits de D4 à D7. Je vous ai parler de lecture plus haut, on ne lira jamais notre LCD dans ce tutoriel, tout simplement car je n'en ai jamais eu l'utilité jusqu'à présent. Donc on peut relié R/W à la masse. Voilà pour la théorie, Ah oui j'oubliais ! Le potentiomètre (Résistance variable) est là pour gérer l'éclairage du lcd. Il n'est pas obligatoire, si vous n'en avez pas, mettez V0 à la masse. --------------- Partie programmation -------------- La question que vous posez sans doute est : Que peut-on faire sur un lcd ? Et bien c'est simple ... Un pénis animé évidemment ! Voici l'une de mes réalisations en cours ... Pas de tuto la dessus par contre, c'était pas en C mais en JAL et sur un autre µcontrolleur qu'arduino ... Bref trêve de plaisanterie, voici quelques idée : Un ping pong(un vrai jeu avec de vrai bouton), une histoire animé, une horloge, tout simplement des informations sur votre code, des menus etc... y'a tellement de trucs amusants à faire sur un lcd ! [image: 8STgF.png] Voici les fonction de base tout est expliqué dans le code, n'hésitez pas si vous avez des questions /!\ J'oublie de préciser une chose importante ! Vous devez absolument respecter les ";", majuscules etc... sinon votre code ne fonctionnera JAMAIS. Par exemple : lcd.setCursor =/= lcd.setcursor C'est terminé pour les bases après on attaquera du lourd, on fera bouger les lettres et oui !  :ph34r:
  • [Cours n°2] Votre premier programmes Arduino : Allumer une LED

    8
    0 Votes
    8 Messages
    5k Vues
    LeplayzeL
    Bonjour à tous ! Un nouveau tutoriel arduino, on y verra les bases ainsi que les bases de l’électronique ! Car une led ne se branche pas directement sur l'arduino ! Matériel nécessaire : Une led rouge Une résistance de 150 ohm L'arduino --------------- Partie électrique ---------------- Cette partie doit être connue à 250% ! Tension de seuil d'une led : C'est la tension admissible aux bornes de votre led ... Donc si vous mettez du 5V alors qu'elle n'en supporte que 2 votre led fera un joli Bzouitch et s'éteindra à tout jamais ! C'est très important de placer une résistance avant votre led ! [image: 8KYLl.png] La tension de seuil dépend de la couleur de votre led. La question est comment savoir la valeur de la résistance ? => U= R x I => Le courant dans une led est toujours de 20 mA donc pour savoir la valeur de R : R = U/I admettons que l'on prend une led de 2V et qu'on alimente en 5V (Les sorties digitales d'arduino donnent du 5V tout le temps) : [image: led-et-calcul-de-la-resistance-serie-4.png] => 5V-2V/20mA = 150 ohm N'oubliez pas de convertir les mA en A. Schémas de câblage : NB : Le câble jaune et vert ne sont pas à placer sur la carte ! Le jaune et le vert représentent les liaisons entre les points de la carte. C'est à dire que tout c'est point là sont relié ensembles avec ou sans câble ! Eviter donc de court-cuité bêtement vos composants. [image: 8KVtV.png]De plus la led est polarisé ! (Je me rend compte en écrivant qu'il y a tellement de truc à explique pour un simple programme Oo). Donc explication du montage : Je pars de la pin 10 DIGITALE de l'arduino, je rentre dans la résistance de 150 ohm, De la résistance je pars a l'anode + de la led pour ressortir de la cathode - de celle-ci. De la cathode je pars au Ground (GND) de l'arduino. Comment savoir ou est la cathode lors du montage physique de celle-ci ? C'est simple : Le bord est coupé sur le coté, la led n'est circulaire que d'une partie, l'autre est coupé pour représenté la barre de la cathode (Voir schémas en bas). Ou encore : La cathode à une longueur de pin plus petite que l'anode : c'est le - de la led. -[image: 8KVEu.png] Voilà c'étais vachement condensé mais si vous avez compris : Gj vous avez fait le plus dure ! --------------- Partie programmation -------------- [image: 8KTj6.png] Explication du code : int led = 10 : On précise que la led est sur la pin 10 de l'arduino : Il faudra précisé ça tout le temps. "led" peut avoir n'importe quel nom par exemple chaussette. On configure ensuite la pin 10 dans le void setup : Pour cela on utilise la fonction pinMode(Nom donné au début du code : Led ou chaussette , OUTPUT ou INPUT ) ; /!\ On oublie pas les points virgules, il n'y a que les void qui n'ont pas de point virgules ! Et les {} précise quand le void commence et se termine. Ensuite on écrit le programme dans void loop() : digitalWrite permet d'écrire sur la sortie digitale : On écrit l'état que l'on souhaite via HIGH ou LOW (Bien respecter les majuscules). et le delay permet d'appliqué un delai avant de passer à la ligne suivante. Bref très très simple comme code, le plus dure sera de comprendre la théorie, et il faut la connaitre si vous vous dites qu'il faut une résistance pour brancher votre led, en sachant que celle-ci doit avoir 20mA comme courant : GG Well played vous avez tout compris Ah oui et qu'une led se polarise. Petits exercices : J'ai une led verte, quelle est la valeur de la résistance que je branche en série sur celle-ci ? J'ai 2 led, 2 rouges avec un seuil de tension de 2.5V que je branche en série sur une pin digital. Quelle est la valeur de la résistance que je branche en série sur celle-ci ? Pour les plus courageux : Ecrivez moi un programme permettant d'allumer 8 leds l'une après l'autre tel un chenillard : Vous pouvez vous dire que si vous réussissez un tel programme que vous maitrisez parfaitement les bases d'arduino et que techniquement avec un peu de recherche on viendra a terme, à programmer un robot plutôt aisément mais surtout individuellement ! Enjoy, leplayze !