Pb vs circuit imprime

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Ekim
Messages : 215
Inscription : dim. 24/juin/2018 1:20

Pb vs circuit imprime

Message par Ekim »

Bonjours à tous

Une question me vient à l'esprit, peut on commander un circuit imprimé ou breadboard : https://sti2d.ecolelamache.org/400_poin ... dboard.jpg

via les commandes "port série" de PB?

par exemple j'aimerais activer/désactiver un circuit via un relai électronique ou encore, commander directement un servomoteur

peut on faire ceci? :wink:
Marc56
Messages : 2197
Inscription : sam. 08/févr./2014 15:19

Re: Pb vs circuit imprime

Message par Marc56 »

Ekim a écrit :Bonjours à tous
Une question me vient à l'esprit, peut on commander un circuit imprimé ou breadboard : https://sti2d.ecolelamache.org/400_poin ... dboard.jpg
via les commandes "port série" de PB?
par exemple j'aimerais activer/désactiver un circuit via un relai électronique ou encore, commander directement un servomoteur
peut on faire ceci? :wink:
Oui. Au plus simple on se sert d'une carte Arduino qui est dotée d'une interface série (via USB). À partir de la toutes les commandes série de PB sont utilisables. Si tu ne mets pas de carte mezzanine, l'arduino Nano (~5€) est suffisant.
Nombreux exemples sur le site, cherches: Arduino.
:wink:
Ekim
Messages : 215
Inscription : dim. 24/juin/2018 1:20

Re: Pb vs circuit imprime

Message par Ekim »

Donc tu veux dire qu'on peut téléverser du PB dans le micro contrôleur d'un arduino?? :|
Marc56
Messages : 2197
Inscription : sam. 08/févr./2014 15:19

Re: Pb vs circuit imprime

Message par Marc56 »

Ekim a écrit :Donc tu veux dire qu'on peut téléverser du PB dans le micro contrôleur d'un arduino?? :|
Non, pas du tout. L'Arduino fonctionne avec un pseudo C et l'espace programme sur la mémoire flash ne va que jusqu'à 512 Ko (32 pour une Uno ou un Nano)
Par pilotage via PB, je veux dire envoi et retour d'information via les commandes série, ce qui permet d'activer via un programme installé en flash de piloter les ports I/O de la carte (donc des relais, des moteurs etc). Ce sont avec des Arduino ou des clones que sont interfacés les imprimantes 3D, petites CNC, graveur laser etc.

On confond souvent, car il sont de même taille, et ont les mêmes connecteurs l'Arduino (simple microcontrôleur associé à un port série et des ports I/O) et le Raspberry (ordinateur complet avec un OS complet (Linux) sur carte (micro)SD)
Ekim
Messages : 215
Inscription : dim. 24/juin/2018 1:20

Re: Pb vs circuit imprime

Message par Ekim »

Ha ok, merci pour l'explication) moi, dès l'instant où on peut activer des relais ou commander des servomoteur, moi sa me va parfaitement :P

à 1ere vue sur le forum français il y a rien du tout concernant les relais est les ports séries via PB :oops:
Marc56
Messages : 2197
Inscription : sam. 08/févr./2014 15:19

Re: Pb vs circuit imprime

Message par Marc56 »

Voici un exemple rapide de pilotage d'une carte Arduino par PureBasic

Code à charger dans la carte Arduino (par l'IDE arduino)

Code : Tout sélectionner

int LED = 13;
int reception;

void setup()
{
  pinMode(LED, OUTPUT);
  Serial.begin(9600);  
}

void loop()
{
  if (Serial.available() > 0) 
  {
       int reception = Serial.read(); 
        if (reception == 'H') { digitalWrite(LED, HIGH); }
        if (reception == 'L') { digitalWrite(LED, LOW ); }  
    }
}  
Fonctionnement: quand la carte reçoit 'H' sur le port série elle active la pin numérique 13 qui est reliée à une LED

Et maintenant le code PureBasic qui va envoyer 'H' ou 'L' pour allumer ou éteindre.
(Changer le port série par celui de la carte)

Code : Tout sélectionner

; Test communication PB et Arduino
; (C)Marc56 18/05/2020
; Purebasic V5.72 LTS x64 http://www.purebasic.com

; Allume/Eteint une LED sur une cartes Arduino 
; Sur Arduino Nano la LED marquée L est connectée à 13

Enumeration
    #Window_0
    #LED_ON
    #LED_OFF
    #Btn_Quit
EndEnumeration

Procedure Open_Window_0()
    If OpenWindow(#Window_0, 220, 0, 321, 228, "",  #PB_Window_SystemMenu | #PB_Window_TitleBar )
        ButtonGadget(#LED_ON,    30,  40, 120, 40, "LED 13 ON")
        ButtonGadget(#LED_OFF,   170,  40, 120, 40, "LED 13 OFF")
        ButtonGadget(#Btn_Quit, 30, 170, 260, 40, "Quitter")
    EndIf
EndProcedure

Port$ = "COM3"

If Not OpenSerialPort(0, Port$, 9600, 0, 8, 1, 0, 5, 5)
    MessageRequester("Erreur!", "Impossible de se connecter au port série " + Port$, 48)
    End
EndIf

Open_Window_0()
Repeat
    Select WaitWindowEvent() 
        Case #PB_Event_CloseWindow
            End
        Case #PB_Event_Gadget
            Select EventGadget()
                Case #LED_ON
                    WriteSerialPortString(0, "H")
                    
                Case #LED_OFF
                    WriteSerialPortString(0, "L")
                    
                Case #Btn_Quit
                    End
            EndSelect               
    EndSelect         
    
ForEver

CloseSerialPort(0)

End
Voila, c'est tout simple.
Maintenant pour activer des relais ou (servos)moteurs ils suffit de connecter à d'autres pins.
Mais là ce n'est plus du basic, voir les forums Arduino

:wink:
Ekim
Messages : 215
Inscription : dim. 24/juin/2018 1:20

Re: Pb vs circuit imprime

Message par Ekim »

Wouaw Excellent) :P

j’ignorais que ce forum abritait de tel génies :lol:

et parallèlement Pb m'impressionne de plus en plus :wink:

Mr @Mar56 merci pour ce cours initiatique :wink:
Répondre