Pages

Affichage des articles dont le libellé est ARDUINO. Afficher tous les articles
Affichage des articles dont le libellé est ARDUINO. Afficher tous les articles

lundi 5 février 2024

Programmer un ATmega328 à 8MHz (partie2)

Dans ce nouvel article (très très bref), je montre l'intégration dans le premier montage (STI2D-SIN-ISN: Programmer un ATmega328 à 8MHz (partie1)) un écran OLED en I2C et un capteur DHT11. 

Le câblage :


En vrai :


Démarrage du système :

La vidéo correspondante :




Une question ? Une remarque ? Une demande de fichier ?

➡Un courriel ;-)



mercredi 24 janvier 2024

Programmer un ATmega328 à 8MHz (partie1)

 Je prends enfin le temps de rédiger ce petit article sur une problématique que je voulais traiter depuis longtemps ! Remarque préalable : il s'agit d'un ATmega328P-PU au format DIL 28. On verra plus tard les autres formats comme les CMS.

Tout est dans le titre, ou presque ;-)


Mise en situation basique


En effet, je voulais montrer comment on peut partir d'une carte Arduino pour prototyper un projet pour arriver un microcontrôleur autonome (ce qui est la réalité dans les faits !). Ici, je montre la base : configurer l'IDE, la carte de programmation et la puce cible. Dans une deuxième partie, vous verrez une exploitation dans un projet.

Voilà la vidéo tant attendue :


A vos messages pour la moindre remarque/question/note positive :-)

mardi 18 avril 2023

Utiliser l'UART d'une carte Arduino avec des caractéristiques non standard

Sur ce blog, vous avez sans doute déjà vu des articles concernant les liaisons séries (UART, RS232)  :

  • Lecture GPS
  • Lecture de badges RFID
  • Connexion à des écrans (NEXTION)
  • Module HC11 (sans fil)
  • Module Bluetooth
  • ...
Et quasiment à chaque fois, on utilise des connexions séries "standard" comme par exemple "9600 bauds" ou "115200 bauds" sur 8 bits et un bit de stop.
Exemple directement pris de l'IDE Arduino (légèrement nettoyé et retouché ;-))


    Il faut bien se dire qu'il existe des systèmes qui communiquent différemment. Il se peut que l'on communique avec un système avec 7 bits de données, un bit de parité paire et un bit de stop.
Cet article n'est pas un cours sur le port série, il est écrit pour utiliser autrement le port série d'une carte Arduino.
Pour rappel, ci-dessous le tableau résumant les connexions séries matérielles sur les cartes Arduino actuelles :

    Sur ces cartes, nous pourrons configurer les UART matériels avec des caractéristiques "exotiques". Cette configuration est très facile à mettre en œuvre sur les cartes "classiques" comme les UNO, NANO et surtout les MEGA qui possèdent 4 UART matériels de base.

Attention, ne pas essayer avec SoftSerial, vous allez avoir des soucis ;-)

👉Méthode :

Dans l'Example au-dessus, on peut lire ligne 4 :

Cela veut dire que l'on ouvre le port série (natif) avec 8 bits de données, pas de parité et 1 bit de stop et un débit binaire à 9600 bauds. C'est la configuration la plus standard que l'on connaisse (au collège, au lycée et chez les bidouilleurs).

MAIS, que faire quand la configuration n'est pas comme cette dernière ?
Arduino nous le dit !

    Pour faire simple, si on a une configuration classique, on écrit uniquement le débit binaire en paramètre de la méthode Serial.begin comme Serial.begin(115200). Si on a besoin d'une configuration différente, on ajoute un second paramètre qui donne le nombre de bits de données, la parité et le nombre de bits de STOP.

  • 8N1 par exemple veut dire : 8 bits de données - No Parity - 1 bit de STOP
  • 7E1 par exemple veut dire : 7 bits de données - Even Parity - 1 bit de STOP
  • 8O2 par exemple veut dire : 8 bits de données - Odd Parity - 2 bits de STOP

Even signifie paire et Odd signifie impaire.

Au final, si je veux configurer par exemple le port série 2 d'une carte MEGA avec 4800 bauds, 7 bits de données, une parité paire et 1 bit de stop, cela donnera une ligne comme celle-ci :


dimanche 23 octobre 2022

Simuler un programme Arduino sur Wokwi

 Il existe plusieurs solutions pour simuler un progamme Arduino. Sur ce blog, vous en avez déjà decouvert certaines...

En voici une nouvelle : Wokwi !


Cette plateforme en ligne n'est pas qu'un simple simulateur, c'est aussi un éditeur complet avec auto complétion.

Plusieurs plateformes sont disponibles :

Ainsi que des exemples et projets déjà prêts pour plus de compréhension ou ne pas partir de rien :

Voici une petite vidéo d'introduction qui vous permettra de démarrer :


Comme d'habitude : une question ? Un courriel !


mercredi 9 mars 2022

Réaliser un compte à rebours simpliste sur une matrice à LED

Suite à cet article : https://sti2d-sin-isn.blogspot.com/2022/03/afficher-un-texte-tres-simplement-sur.html , je vais présenter une façon très simple de réaliser un compte à rebours sur une seule matrice.

Le programme est très facile à lire et il est assez commenté, je pense.

Le câblage :

On va avoir du mal à faire plus simple.....


Le programme :


Test sous Simulide (1.0) :


Résultat final :



A bientôt pour d'autres usages....



lundi 7 mars 2022

Afficher un texte TRES simplement sur une matrice à LED en C++ avec une carte Arduino

 Ce nouvel article va montrer comment afficher un texte, le plus simplement du monde, sur une matrice à LED équipée de MAX7219 et cela grâce à une librairie très bien faite et facile d'accès : GyverMAX7219 .

Lien vers la ressource officielle : GitHub - GyverLibs/GyverMAX7219: Cамая резкая библиотека для матриц MAX7219 на диком западе

Pour information, je confirme, c'est écrit en russe.... oui, nous sommes sur un blog pédagogique, pas de polémique ici.

La librairie s'installe comme d'habitude :


J'ai choisi cette librairie parce qu'elle est très facile à utiliser. La documentation, malgré la langue, est très compréhensible.

Voilà déjà un premier exemple :

J'ai pris une matrice 4*1 que j'avais déjà. Celle-ci est connectée en SPI.

On peut constater que peu de lignes sont nécessaires pour afficher du texte. Les commentaires sont suffisants à la compréhension et certaines lignes n'ont même pas besoin d'être commentées...

Câblage :

Résultat du programme précédent :


Mon câblage réel pour cet exemple :








Prochain article : quelques fonctions avancées.....




lundi 10 mai 2021

Simuler une matrice à LED avec Simulide dont le croquis est conçu avec Arduino_Augmenté

 Cet article très bref et très facile (peu ou pas de blabla) va nous montrer comment simuler simplement un affichage à matrice avec Simulide suite à une conception avec Arduino_Augmenté. Rappel : un article de présentation est ici : https://sti2d-sin-isn.blogspot.com/2021/05/simuler-sur-simulide-un-programme.html , lisez-le avant si ce n'est pas fait 😉

Objectif :

Les composants à placer :

Bien faire attention aux connexions...

Les blocs d'Arduino-Augmenté à utiliser pour cela :
Remarque :
La bibliothèque utilisée est Parola. Celle-ci est très bien faite et complète. Pour cet application, la matrice de droite qui est la trois, est le bloc zéro. Les trois autres matrices, forment le bloc 1. En fait, Parola permet de scinder un bloc de matrices en sous-blocs pour les rendre autonomes. C'est pour cela que je peux afficher "A:" fixe et la valeur en dynamique.
D'autres exemples seront ajoutés ultérieurement.

Comme pour l'article précédent (référencé en haut), il suffit maintenant de "téléverser" (même dans le vide), de compiler les binaires et d'ouvrir le répertoire final (ctrl-k).

La simulation :

Et en vrai de vrai :

Je suis sympa, je donne toutes les sources pour cet article 👌
(cliquer sur l'image au dessus ;-))









mercredi 5 mai 2021

Simuler sur Simulide un programme Arduino conçu avec Arduino_Augmenté de DuinoEdu

Cet article va présenter une simulation simple sur Simulide (https://sti2d-sin-isn.blogspot.com/2018/03/simuler-un-programme-arduino-avec.html et https://sti2d-sin-isn.blogspot.com/2018/03/simuler-facilement-avec-simulide.html) d'un croquis conçu par blocs avec le module Arduino_Augmenté de DuinoEdu.

Petit rappel des liens :

SimulideSimulIDE: Downloads

DuinoEduSans titre (duinoedu.com)

Voila ce que l'on va obtenir à la fin de cet article :


Nous allons simuler deux entrées analogiques qui seraient connectées sur un potentiomètre (A0) et une photorésistance (A1).

A partir de maintenant, Arduino_Augmenté doit être dézippé ainsi que Simulide si ce n'est pas encore fait...

1) Lancer Arduino_Augmenté (aller dans son répertoire dézippé) :

Une interface habituelle Arduino s'ouvre ...
Et :

Si vous n'avez pas de carte Arduino connectée (c'est un peu le principe de la simulation...), voilà ce qu'il se passe :

2) Lancer Simulide (aller dans son répertoire dézippé) :

C'est parti !

3) Récupérer le fichier .hex issu de l'IDE Arduino :

Premièrement, il faut créer les fichiers utiles :


Puis savoir où il se trouvent...

Il suffit se faire "ctrl+k" et cette fenêtre s'ouvre :
Attention à bien repérer le chemin des fichiers !!!!

Et voici la simulation :

En vrai :



Proposition d'amélioration :
Mise à jour de la simulation :


Avec un petit courriel gentil, je vous envoie tous les fichiers nécessaires pour pratiquer 😇

dimanche 11 avril 2021

Deux grandes mises à jour !!!

 Article bref qui va en entrainer d'autres à coups sûr...

Freecad passe officiellement en 0.19 et Arduino IDE a une version 2 qui devient de plus en plus prometteuse !



Aperçus des écrans :

Arduino IDE :


Freecad :


Bientôt des articles pour montrer quelques usages...👀


lundi 23 mars 2020

Faire communiquer un ATtiny85 avec une carte UNO sans fil !

Suite aux articles sur l'ATtiny85, voici une application pratique mettant en œuvre une liaison série et un capteur de température, côté émetteur et un écran LCD côté récepteur et une liaison série aussi. Attention, c'est du sans fil ! (heu....ça marche aussi avec fil, bien entendu ! Si on respecte bien les connexions Rx/Tx ;-) ).

Pour faire simple, à un ATtiny85 est connecté un 18b20 et un HC-12. Ce montage va nous mesurer une température et la transmettre sans fil à un récepteur basé sur une UNO, un HC-12 aussi (c'est mieux !) et un écran LCD.

Voici les deux montages :

L'émetteur :


Et le récepteur :



Les programmes :
L'émetteur :

Entre les deux, cette trame (chaîne) est envoyée :
avec ee.dd = entierentier.décimaldécimal

Le récepteur :

Au final : 
L'émetteur :

Le récepteur :


Et voilà !