Hallo liebe Forenmitglieder!
Möchte mich kurz vorstellen: Lennart(schwedisch), 53J, Elektronikbastler seit Philips Baukästen 1972, Modellbahner, PIC Programmierer über Parsic, Platinenfräser mit CNC....., Eagle cad...
Grundsätzlich ist ja "learning by doing" mein ewiges erfolgreiches Motto, jetzt häng ich aber fest und möchte um eure Hilfe bitten.
Vorhandene Hard und Software; ArduinoMega2560, Breadboards,Led... PureBasic Programm
Ich sitze nun schon seit Tagen und versuche folgendes zu realisieren:
Kleines PB-Proggi mit 2 Buttons (LED "rot" und LED "grün")in weisser Farbe gehalten,Programmhintergrundfarbe egal.
EINER davon soll schon, als hätte man ihn bereits per Maus angeklickt rot oder grün dargestellt werden. ButtonBeschriftung rot und grün
Paralell dazu soll am Arduino die rote oder grüne Led leuchten (z.B. Pin 12 für rot, Pin 13 für grün)
Klicke ich per Maus den anderen Button als den farblich "aktiven", soll dieser aktiv sich einfärben,der ursprüngliche wieder weiss werden,
die Led am Arduino parallel mitmachen. Also "roter Button-rote Led" oder nach klick "grüner Button-grüne Led).
Hätt ich nicht schon Kopfschmerzen würde ich nicht um Hilfe bitten
Danke für Eure Unterstützung
Lennart
PB schaltet über Arduino LED
Re: PB schaltet über Arduino LED
Mit Arduino kenne ich mich nicht aus, hier trotzdem mal ein Grundgerüst...
Code: Alles auswählen
;PB 5.61 [OS: Windows]
If OpenWindow(0,0,0,100,120,"LED",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
SetWindowColor(0,#Black)
If TextGadget(1,40,10,50,50,"ROT",#SS_NOTIFY) And TextGadget(2,40,60,50,50,"GRÜN",#SS_NOTIFY)
SetGadgetColor(1,#PB_Gadget_BackColor,#Red)
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
If EventGadget() = 1
SetGadgetColor(1,#PB_Gadget_BackColor,#Red)
SetGadgetColor(2,#PB_Gadget_BackColor,#White)
Else
SetGadgetColor(1,#PB_Gadget_BackColor,#White)
SetGadgetColor(2,#PB_Gadget_BackColor,#Green)
EndIf
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
EndIf
EndIf
Re: PB schaltet über Arduino LED
Hallo Lennart,
ich werde dir jetzt kein fertiges Programm basteln.
Aber ich gebe dir einiges von Nutzen mit.
1. Farbige Button werden direkt von PureBasic nicht unterstützt.
> Du könntest mit CreateImage(..) arbeiten und ButtonImageGadget(..) verwenden.
2. Ein COM-Port öffnest du z.B. so:
;Global Port.s = "/dev/ttyACM0"
Global Port.s = "COM1"
Global Baudrate.i = 9600
OCom = OpenSerialPort(0, Port, Baudrate, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 1024, 1024)
3. Seriale-Daten vom Arduino liest du zum Beispiel so:
4. Daten zum Arduino (für das Schalten) sendest du z.B. so:
5. Auf dem Arduino könnte das dann so aussehen:
Das dient alles nur als einfaches Beispiel.
Viel Spaß beim Probieren und Programmieren.
ich werde dir jetzt kein fertiges Programm basteln.
Aber ich gebe dir einiges von Nutzen mit.
1. Farbige Button werden direkt von PureBasic nicht unterstützt.
> Du könntest mit CreateImage(..) arbeiten und ButtonImageGadget(..) verwenden.
2. Ein COM-Port öffnest du z.B. so:
;Global Port.s = "/dev/ttyACM0"
Global Port.s = "COM1"
Global Baudrate.i = 9600
OCom = OpenSerialPort(0, Port, Baudrate, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 1024, 1024)
3. Seriale-Daten vom Arduino liest du zum Beispiel so:
Code: Alles auswählen
Procedure.s ReadSerialPortString(port.i)
Protected length.i = AvailableSerialPortInput(port)
Protected *mem, pos = 0
Protected result.s
If length And IsSerialPort(port)
*mem = AllocateMemory(length)
While pos < length
pos + ReadSerialPortData(port, *mem + pos, length - pos)
Wend
result = PeekS(*mem, length, #PB_Ascii)
FreeMemory(*mem)
ProcedureReturn result
EndIf
ProcedureReturn ""
EndProcedure
....
Case #PB_Event_Timer
If EventTimer() = 123
If IsSerialPort(0)
Bytes = AvailableSerialPortInput(0)
If Bytes >= 8
output = ReadSerialPortString(0)
EndIf
SerialOut = output
EndIf
Code: Alles auswählen
If IsSerialPort(0)
WriteSerialPortString(0, "1") ;z.B. Anschalten
EndIf
Code: Alles auswählen
String inputString = "";
boolean stringComplete = false;
int led = 13;
void setup() {
pinMode(led, OUTPUT);
Serial.begin(9600);
inputString.reserve(200);
}
void loop() {
if (stringComplete) {
Serial.println(inputString);
inputString = "";
stringComplete = false;
}
}
void serialEvent() {
while (Serial.available()) {
char inChar = (char)Serial.read();
if (inChar == '1') { //LED anschalten
digitalWrite(led, HIGH);
stringComplete = true;
}
if (inChar == '0') { //LED ausschalten
digitalWrite(led, LOW);
stringComplete = true;
}
}
}
Viel Spaß beim Probieren und Programmieren.
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat
no Keyboard, press any key
no mouse, you need a cat
Re: PB schaltet über Arduino LED
Danke an Mijikai und ccode_new, werde mal intensiv aufarbeiten, was draus lernen,
und mich dann natürlich mit "Erfahrungen" melden.
Gruß Lennart
und mich dann natürlich mit "Erfahrungen" melden.
Gruß Lennart
- tft
- Beiträge: 605
- Registriert: 08.09.2004 20:18
- Computerausstattung: GTX Titan , i9 9900K , 32 GB Ram , 500 GB SSD , 3 ASUS FullHD Monitore and more
- Wohnort: Dachsen
- Kontaktdaten:
Re: PB schaltet über Arduino LED
Hallo,
also PB und Arduino sind genau mein Ding. Da du schon gute Hinweise erhalten hast. Probier erst mal. Wenn du dann nicht weiter kommst
helfe ich gerne weiter. In unserem Alter muss man sich helfen
Gruss Turgut
also PB und Arduino sind genau mein Ding. Da du schon gute Hinweise erhalten hast. Probier erst mal. Wenn du dann nicht weiter kommst
helfe ich gerne weiter. In unserem Alter muss man sich helfen
Gruss Turgut
TFT seid 1989 , Turgut Frank Temucin , Dachsen/Berlin/Antalya
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak
Re: PB schaltet über Arduino LED
Oh, danke an tft, ich arbeit mal los, melde mich bei Euch dann mit meinen ERFAHRUNGEN !!!
PS:tut gut so das helfen im Alter......
das kennt die Jugend noch nicht
PS:tut gut so das helfen im Alter......
das kennt die Jugend noch nicht