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
» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar Yannick Aujourd'hui à 18:32

» Philharmusique
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar jjn4 Aujourd'hui à 13:58

» PANORAMIC V 1
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar papydall Hier à 3:22

» select intégrés [résolu]
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Domotique et électronique : deux SUBs pour Arduino NANO/UNO Emptypar jjn4 Ven 26 Avr 2024 - 17:39

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment : -45%
WHIRLPOOL OWFC3C26X – Lave-vaisselle pose libre ...
Voir le deal
339 €

 

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

Aller en bas 
AuteurMessage
Marc

Marc


Nombre de messages : 2392
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: