FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar Pedro Hier à 15:50

» Un autre pense-bête...
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment : -55%
Friteuse sans huile – PHILIPS – Airfryer ...
Voir le deal
49.99 €

 

 Domotique et électronique : deux SUBs pour Arduino NANO/UNO

Aller en bas 
AuteurMessage
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Domotique et électronique : deux SUBs pour Arduino NANO/UNO Empty
MessageSujet: Domotique et électronique : deux SUBs pour Arduino NANO/UNO   Domotique et électronique : deux SUBs pour Arduino NANO/UNO EmptySam 16 Juil 2022 - 3:45

Bonjour à tous !


Retrouvez le même article adapté pour l'Arduino MEGA 2560 ici : https://panoramic.1fr1.net/t6777-domotique-et-electronique-deux-subs-pour-arduino-mega-2560


Afin de simplifier la conception d’un programme Panoramic en vue de piloter facilement les 12 sorties d’un Arduino UNO ou NANO, je vous propose deux sous-programmes (SUB).


La première SUB va créer la voie de communication entre Panoramic et l’Arduino.
Code:
sub initalisationLiaisonSerie(PortCom%)
    dim_local texte$
    if serial_port_exists(portCom%) = 0
        texte$ = "Le port COM" + str$(portCom%) + " n'est pas disponible !" + chr$(13) + chr$(13)
        texte$ = texte$ + "Vérifiez le numéro de port COM ainsi que les connexions électriques."
        if message_error_ok(texte$) < 2
            terminate
        end_if
    end_if
    serial 1
    serial_port 1,portCom%
    serial_baudrate 1,9600
    serial_databits 1,8
    serial_parity 1,0
    serial_stopbits 1,1
    serial_open 1
end_sub

Appel de la sub : initalisationLiaisonSerie(N)
N est un entier compris entre 1 et 255. Il représente le numéro du port COM attribué par Windows au port USB sur lequel est connecté l’Arduino.
Le sous-programme crée et initialise la liaison série. Ici, l’objet Panoramic SERIAL porte le n° 1.
Cette SUB est à appeler une seule et unique fois au lancement du programme.


La deuxième SUB permet de commander l’état (0 ou 1) de la sortie digitale souhaitée.
Code:
sub sortieDigitale(d_out%,etat%)
    if d_out% < 2 or d_out% > 13
        exit_sub
    end_if
    if etat% < 0 or etat% > 1
        exit_sub
    end_if
    serial_write 1,chr$(d_out%)+chr$(etat%)+chr$(255)
end_sub

Appel de la SUB : sortieDigitale(N,V)
N est un entier compris entre 2 et 13. Il représente le numéro de la sortie digitale de l’Arduino que l’on souhaite cibler.
V est un entier de valeur 0 ou 1. Il représente l’état souhaité de la sortie digitale N.
- La valeur 0 met la sortie digitale N au niveau bas (0 volt).
- La valeur 1 met la sortie digitale N au niveau haut (+5volts).

Exemples :
Pour mettre la sortie digital 8 à l’état haut, il suffit d’écrire : sortieDigitale(8,1)
Pour mettre la sortie digital 11 à l’état bas : sortieDigitale(11,0)


Mise en pratique des deux SUBs dans un programme :
Code:
' Commande des sorties digitales 2 à 13, pour l'Arduino NANO ou UNO
' Marc - Juillet 2022
' Ecrit en langage Panoramic 0.9.29i9

initalisationLiaisonSerie(9) :' Indiquez en paramètre le numéro de port COM utilisé par la carte Arduino

sortieDigitale(2,1) :' la sortie digitale 2 de l'Arduino est mise à 1
sortieDigitale(10,1) :' la sortie digitale 10 de l'Arduino est mise à 1

end
' ------------------------------------------------------------------------------
sub sortieDigitale(d_out%,etat%)
    if d_out% < 2 or d_out% > 13
        exit_sub
    end_if
    if etat% < 0 or etat% > 1
        exit_sub
    end_if
    serial_write 1,chr$(d_out%)+chr$(etat%)+chr$(255)
end_sub
' ------------------------------------------------------------------------------
sub initalisationLiaisonSerie(PortCom%)
    dim_local texte$
    if serial_port_exists(portCom%) = 0
        texte$ = "Le port COM" + str$(portCom%) + " n'est pas disponible !" + chr$(13) + chr$(13)
        texte$ = texte$ + "Vérifiez le numéro de port COM ainsi que les connexions électriques."
        if message_error_ok(texte$) < 2
            terminate
        end_if
    end_if
    serial 1
    serial_port 1,portCom%
    serial_baudrate 1,9600
    serial_databits 1,8
    serial_parity 1,0
    serial_stopbits 1,1
    serial_open 1
end_sub


Remarques :
Ne jamais utiliser les sorties digitales 0 et 1. Elles sont réservées en interne pour la liaison série entre Panoramic et l’Arduino.
Si les 12 sorties digitales disponibles ne sont pas suffisantes, utilisez un Arduino MEGA 2560 qui dispose de 54 sorties digitales. Dans ce cas, quelques modifications logicielles seront à apporter.


Voici le code à téléverser dans l’Arduino NANO ou UNO  pour qu’il obéisse aux commandes issues du code Panoramic :
Code:
void setup()
{
    Serial.begin(9600);
    for (int n=2; n <= 13; n++)
    {
        pinMode(n,OUTPUT);
    }
}

void loop()
{
    char buf[3];
    if (Serial.available())
    {
        int trameRecue = Serial.readBytesUntil(255,buf,3);
        int numeroGpio = buf[0];
        
        if (buf[1] == 1)
            digitalWrite(numeroGpio,HIGH);
        else
            digitalWrite(numeroGpio,LOW);
    }
}


Bonne programmation et bonnes réalisations avec le couple Panoramic / Arduino !

Ouf_ca_passe aime ce message

Revenir en haut Aller en bas
 
Domotique et électronique : deux SUBs pour Arduino NANO/UNO
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Domotique et électronique : deux SUBs pour Arduino MEGA 2560
» Domotique et électronique : Panoramic et l’Arduino DUE.
» Domotique et électronique : Arduino, action locale/distante
» Domotique et électronique : 2 LEDs et 2 servomoteurs
» deux petites subs

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: