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
