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
» Gestion d'un système client-serveur.
Domotique et électronique : deux SUBs pour Arduino MEGA 2560 Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
Domotique et électronique : deux SUBs pour Arduino MEGA 2560 Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Domotique et électronique : deux SUBs pour Arduino MEGA 2560 Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Domotique et électronique : deux SUBs pour Arduino MEGA 2560 Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Domotique et électronique : deux SUBs pour Arduino MEGA 2560 Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Domotique et électronique : deux SUBs pour Arduino MEGA 2560 Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Domotique et électronique : deux SUBs pour Arduino MEGA 2560 Emptypar papydall Jeu 9 Mai 2024 - 3:22

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

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

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

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

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

» bouton dans autre form que 0(résolu)
Domotique et électronique : deux SUBs pour Arduino MEGA 2560 Emptypar leclode Lun 6 Mai 2024 - 13:59

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

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

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 :
Cartes Pokémon EV6.5 : où trouver le ...
Voir le deal

 

 Domotique et électronique : deux SUBs pour Arduino MEGA 2560

Aller en bas 
AuteurMessage
Marc

Marc


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

Domotique et électronique : deux SUBs pour Arduino MEGA 2560 Empty
MessageSujet: Domotique et électronique : deux SUBs pour Arduino MEGA 2560   Domotique et électronique : deux SUBs pour Arduino MEGA 2560 EmptyMer 3 Aoû 2022 - 14:08

Bonjour à tous !

=> Retrouvez le même article adapté pour l'Arduino UNO et NANO ici : https://panoramic.1fr1.net/t6775-domotique-et-electronique-deux-subs-pour-arduino-nano-uno

Afin de simplifier la conception d’un programme Panoramic en vue de piloter facilement les 52 sorties digitales d’un Arduino MEGA 2560, 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. Dans cet exemple, le numéro d’objet Panoramic SERIAL est le 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% > 53
        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 53. 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 48 à l’état haut, il suffit d’écrire : sortieDigitale(48,1)
Pour mettre la sortie digital 22 à l’état bas : sortieDigitale(22,0)


Mise en pratique des deux SUBs dans un programme :

Code:
' Commande des sorties digitales 2 à 53, pour l'Arduino MEGA 2560
' Marc - Aout 2022
' Ecrit en langage Panoramic 0.9.29i9

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

' exemples :
sortieDigitale(28,1) :' la sortie digitale 28 de l'Arduino est mise à 1
sortieDigitale(49,1) :' la sortie digitale 49 de l'Arduino est mise à 1

end
' ------------------------------------------------------------------------------
sub sortieDigitale(d_out%,etat%)
    if d_out% < 2 or d_out% > 53
        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



Remarque :
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.



Voici le code à téléverser dans l’Arduino MEGA 2560 pour qu’il obéisse aux commandes issues du code Panoramic :
Code:
void setup()
{
    Serial.begin(9600);
    for (int n=2; n <= 53; 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 !
Revenir en haut Aller en bas
 
Domotique et électronique : deux SUBs pour Arduino MEGA 2560
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Domotique et électronique : deux SUBs pour Arduino NANO/UNO
» 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: