Hardware-/ Schnittstellenprogrammierung

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 19 Antworten in diesem Thema. Der letzte Beitrag () ist von Trade.

    Hardware-/ Schnittstellenprogrammierung

    Moin zusammen vllt könnt ihr mir ja helfen


    ich finde Arduino und VB ein guter Einstieg zum zu lerne was PROGRAMMIERUNG ist ( egal ob es Hardware ( Elektronik oder Software ist ))
    mein Anliegen ist, ich möchte gern eine über VB eine Schnittstelle erstellen womit ich den Arduino sagen und dem Funksender ( 433 MHZ ) sagen kann das er am Empfänger befindliche LED an und wieder aus schalten soll.

    Sprich BUTTONL => LED an, BUTTON => LED aus



    fals ich noch ein paar Information benötig kein Problem wäre schön wenn ihr mir helfen

    LG

    siehe Detais;

    VB.NET-Quellcode

    1. DER SENDER CODE:
    2. #include <RCSwitch.h>
    3. RCSwitch mySwitch = RCSwitch();
    4. int taster=7; //Das Wort „taster“ steht jetzt für den Wert 7.
    5. int tasterstatus=0; //Das Wort „tasterstatus“ steht jetzt zunächst für den Wert 0. Später wird unter dieser Variable gespeichert, ob der Taster gedrückt ist oder nicht.
    6. void setup() //Hier beginnt das Setup.
    7. {
    8. mySwitch.enableTransmit(10); // Der Sender wird an Pin 10 angeschlossen
    9. pinMode(taster, INPUT); //Der Pin mit dem Taster (Pin 7) ist jetzt ein Eingang.
    10. }
    11. void loop()
    12. { //Mit dieser Klammer wird der Loop-Teil geöffnet.
    13. tasterstatus=digitalRead(taster); //Hier wird der Pin7 ausgelesen (Befehl:digitalRead). Das Ergebnis wird unter der Variable „tasterstatus“ mit dem Wert „HIGH“ für 5Volt oder „LOW“ für 0Volt gespeichert.
    14. if (tasterstatus == HIGH)//Verarbeitung: Wenn der taster gedrückt ist (Das Spannungssignal ist hoch)
    15. {//Programmabschnitt des IF-Befehls öffnen.
    16. mySwitch.send(5678, 24); // Der 433mhz Sender versendet die Dezimalzahl „5678“
    17. delay (50); // 50 Millisekunden Pause
    18. } //Programmabschnitt des IF-Befehls schließen.
    19. else //...ansonsten...
    20. { //Programmabschnitt des else-Befehls öffnen.
    21. mySwitch.send(1234, 24); // Der 433mhz Sender versendet die Dezimalzahl „1234“
    22. } //Programmabschnitt des else-Befehls schließen.
    23. } //Mit dieser letzten Klammer wird der Loop-Teil geschlossen.


    VB.NET-Quellcode

    1. DER EMPFÄNGER CODE:
    2. #include <RCSwitch.h>
    3. int LED=12;
    4. RCSwitch mySwitch = RCSwitch();
    5. void setup()
    6. {
    7. Serial.begin(9600);
    8. mySwitch.enableReceive(0); // Empfänger ist an Interrupt-Pin "0" - Das ist am UNO der Pin2
    9. pinMode(LED, OUTPUT); //Der Pin mit der LED (Pin13) ist jetzt ein Ausgang.
    10. }
    11. void loop() {
    12. if (mySwitch.available()) // Wenn ein Code Empfangen wird...
    13. {
    14. int value = mySwitch.getReceivedValue(); // Empfangene Daten werden unter der Variable "value" gespeichert.
    15. if (value == 0) // Wenn die Empfangenen Daten "0" sind, wird "Unbekannter Code" angezeigt.
    16. {
    17. Serial.println("Unbekannter Code");
    18. }
    19. else // Wenn der Empfangene Code brauchbar ist, wird er hier an den Serial Monitor gesendet.
    20. {
    21. Serial.print("Empfangen: ");
    22. Serial.println( value );
    23. if (value == 5678) //Verarbeitung: Wenn der Arduino die Zahl "5678" empfängt, dann...
    24. { //Programmabschnitt des IF-Befehls öffnen.
    25. digitalWrite(LED, HIGH); //dann soll die LED leuchten
    26. delay (500); //und zwar für 0,5 Sekunden (500 Millisekunden).
    27. digitalWrite(LED, LOW); //danach soll die LED aus sein.
    28. } //Programmabschnitt des IF-Befehls schließen.
    29. }
    30. mySwitch.resetAvailable(); // Hier wird der Empfänger "resettet"
    31. }
    32. }
    Bilder
    • Empfänger-Steckplan.jpg

      93,84 kB, 768×594, 124 mal angesehen
    • Sender-Steckplan.jpg

      95,25 kB, 768×603, 188 mal angesehen
    1. Ich erkenne keine Frage.
    2. Herzlichen Glückwunsch für den Willen VB.Net zu lernen. Aber das, was Du hier präsentierst, ist nicht VB.Net, sondern ein C-Derivat. Vielleicht C, vielleicht C++, vielleicht C# oder was anderes. Aber nicht VB.Net.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @Der Laie ist dieser Thread nur informativ für uns, damit wir uns auf kommende Fragen vorbereiten können?
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „mrMo“ ()

    @Der Laie Wwenn Du den Code in den C++-Tag packst ([ c ][ /c ]) (ohne Leerzeichen) lässt sich der Code besser lesen.
    @VaporiZed Kein C#, denn da kommt #include vor.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Moin zusammen

    vielen dank für die Antworten und für die ein oder andere behlerung ich werde es sofort umändern mit der Codeansicht

    C-Quellcode

    1. DER SENDER CODE:
    2. #include <RCSwitch.h>
    3. RCSwitch mySwitch = RCSwitch();
    4. int taster=7; //Das Wort „taster“ steht jetzt für den Wert 7.
    5. int tasterstatus=0; //Das Wort „tasterstatus“ steht jetzt zunächst für den Wert 0. Später wird unter dieser Variable gespeichert, ob der Taster gedrückt ist oder nicht.
    6. void setup() //Hier beginnt das Setup.
    7. {
    8. mySwitch.enableTransmit(10); // Der Sender wird an Pin 10 angeschlossen
    9. pinMode(taster, INPUT); //Der Pin mit dem Taster (Pin 7) ist jetzt ein Eingang.
    10. }
    11. void loop()
    12. { //Mit dieser Klammer wird der Loop-Teil geöffnet.
    13. tasterstatus=digitalRead(taster); //Hier wird der Pin7 ausgelesen (Befehl:digitalRead). Das Ergebnis wird unter der Variable „tasterstatus“ mit dem Wert „HIGH“ für 5Volt oder „LOW“ für 0Volt gespeichert.
    14. if (tasterstatus == HIGH)//Verarbeitung: Wenn der taster gedrückt ist (Das Spannungssignal ist hoch)
    15. {//Programmabschnitt des IF-Befehls öffnen.
    16. mySwitch.send(5678, 24); // Der 433mhz Sender versendet die Dezimalzahl „5678“
    17. delay (50); // 50 Millisekunden Pause
    18. } //Programmabschnitt des IF-Befehls schließen.
    19. else //...ansonsten...
    20. { //Programmabschnitt des else-Befehls öffnen.
    21. mySwitch.send(1234, 24); // Der 433mhz Sender versendet die Dezimalzahl „1234“
    22. } //Programmabschnitt des else-Befehls schließen.
    23. } //Mit dieser letzten Klammer wird der Loop-Teil geschlossen.



    C-Quellcode

    1. DER EMPFÄNGER CODE:
    2. #include <RCSwitch.h>
    3. int LED=12;
    4. RCSwitch mySwitch = RCSwitch();
    5. void setup()
    6. {
    7. Serial.begin(9600);
    8. mySwitch.enableReceive(0); // Empfänger ist an Interrupt-Pin "0" - Das ist am UNO der Pin2
    9. pinMode(LED, OUTPUT); //Der Pin mit der LED (Pin13) ist jetzt ein Ausgang.
    10. }
    11. void loop() {
    12. if (mySwitch.available()) // Wenn ein Code Empfangen wird...
    13. {
    14. int value = mySwitch.getReceivedValue(); // Empfangene Daten werden unter der Variable "value" gespeichert.
    15. if (value == 0) // Wenn die Empfangenen Daten "0" sind, wird "Unbekannter Code" angezeigt.
    16. {
    17. Serial.println("Unbekannter Code");
    18. }
    19. else // Wenn der Empfangene Code brauchbar ist, wird er hier an den Serial Monitor gesendet.
    20. {
    21. Serial.print("Empfangen: ");
    22. Serial.println( value );
    23. if (value == 5678) //Verarbeitung: Wenn der Arduino die Zahl "5678" empfängt, dann...
    24. { //Programmabschnitt des IF-Befehls öffnen.
    25. digitalWrite(LED, HIGH); //dann soll die LED leuchten
    26. delay (500); //und zwar für 0,5 Sekunden (500 Millisekunden).
    27. digitalWrite(LED, LOW); //danach soll die LED aus sein.
    28. } //Programmabschnitt des IF-Befehls schließen.
    29. }
    30. mySwitch.resetAvailable(); // Hier wird der Empfänger "resettet"
    31. }
    32. }
    Ok, hätte aber ggf. auch im Startpost gereicht. Egal. Was ist der Sinn des Threads? Du hast bisher (immer) noch keine Frage gestellt.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    der Sinn des Threads ist es eine VB Prgramm zu schreiben womit ich eine Funkverbindung herstellen kann über 2 Arduinos in einem dieser Bilder ist ein Arduino zu sehen mit Taster mein Gedanke ist den Taster durch meine Software zu ersetzen,

    Button LICHT AN ( led an )


    Button LICHT AUS ( led aus )

    und das das dann über Funk gesendet wird an den anderen Arduino. Aber ich möchte nach Bild vorhanden Taster durch mein Progamm ersetzten das ich dann alles von meinem Programm aus steuer und den Taster weg lassen kann

    LG
    @Der Laie Würdest Du endlich aufhören, PNs an mich zu schicken, die ich eh nicht beantworte?

    RodFromGermany schrieb:

    VB-Fragen über PN / Konversation werden ignoriert!
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Der Laie Wo können wir dir nun weiter helfen? Ohne konkrete Fragen lässt es sich nur schwer helfen.

    Du Frage
    Wir Antwort
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Ist doch absolut klar:

    Der Laie schrieb:

    und das das dann über Funk gesendet wird an den anderen Arduino. Aber ich möchte nach Bild vorhanden Taster durch mein Progamm ersetzten das ich dann alles von meinem Programm aus steuer und den Taster weg lassen kann
    :S (der Text wurde wohl geschrieben, ohne dass er vor dem Absenden nochmal gelesen wurde, denn inhaltlich ... Ich sag nur Bahnhof)
    Er will wohl eine programmgesteuerte Beeinflussung der Ardunios erstellen statt irgendwelche Hardwareknöpfe zu drücken, aber er weiß nicht wie. In der Hoffnung, dass der Code jemanden weiterbringt, wurde dieser wohl gepostet. Aber da bin ich eh raus. Habe keine Ahnung von Schaltbildern oder Ardunios.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @Der Laie
    Lehne dich bitte mal zurück und versetze dich in unsere Lage. Um dir Helfen zu können müssen wir mal wissen was du hast und was du hier nicht genau verstehst.
    Außerdem versuche bitte verständliche, ganze Sätze zu bilden, ich bin davon überzeugt das du das kannst.

    Unter was programmierst du? Windows IOT?
    Welche IDE verwendest du?

    Du schreibst immer von VB - Postest aber einen C# oder C++ Code. Das ist verwirrend, was willst du nun.

    Ich kann dir nur empfehlen mal von Anfang an zu sehen was genau du dir für dein Vorhaben an wissen aneignen musst. Denn ohne diesem bringen dir die Tipps hier wenig.
    Wenn du mit VB arbeiten willst kann ich dir nur Windows IOT Core ans herz legen da damit in gewohnter Umgebung (Visual Studio) recht einfach alles angesteuert werden kann und es auch hier viele Beispiele gibt.

    Das aufsetzen eines Arduino/Raspberry Pi geht über das IOT Daschboard super einfach.

    Achja, eines noch: Sei so gut und Respektiere es wenn die Leute in Ihrer Signatur stehen haben das diese keine Privaten Nachrichten haben möchten. Für Fragen ist das Forum da und wenn du dir ein wenig mühe mit der Fragestellung gibst wird dir sicher rasch geholfen. Ist nur gut gemeint.

    Schöne Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Der Laie schrieb:

    hi sorry vllt für die Private Nachricht nur ich würde gern wissen wie ich Bilder in einem Beitrag erstellen kann wenn man schon ein Thread erstellt hat

    LG


    p.s. Auch ich stehe nicht auf PNs
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

    VB und Arduino Funksteuerung

    Hallo zusammen,

    ich möchte erstmal über ein einfaches Programm mit 2 Button ( LED an -/ LED aus ) Funkbasis Arduino 433 Funksender Empfänger eine LED an und aus schalten können nur ich weis nicht wie ich es in vb schreiben kann das vb den arduino ansteuert, ich programmiere mein Mini pro über den Uno weil dieser später auch in ein Modellauto eingebaut wird und dieses Steuerung mit Akkus mit Strom versorgt wird und die Daten wie nur über Funk übermittelt werden ( Licht an , schnell fahren, langsam fahren, Blinker etc sprich das Auto ist nur unterwegs und von meinem PC Programm werden nur die Steuerbefehle gesendet. vllt hilft euch meine Skizze weiter und ihr könnt damit was anfangen.


    Der Arduino UNO ist nur für die Programmierung für den mini Pro zuständig und die Datenübertragung folgt über eine 433 MHZ Funkempfängermodul, die Sendeeinheit besteht aus einem Arduino UNO und dem Sendermodul ohne

    IRGENDWELCHE Tasten schalter etc.

    Der Sender Steckplan ist nur zwar das Ursprungsplan möchte aber den TASTER durch mein Programm ersetzen


    Hoffe es ist jetzt mehr Einsichtlich was ich vor haben


    LG


    Der Sendercode


    C-Quellcode

    1. #include <RCSwitch.h>
    2. RCSwitch mySwitch = RCSwitch();
    3. int taster=7; //Das Wort „taster“ steht jetzt für den Wert 7.
    4. int tasterstatus=0; //Das Wort „tasterstatus“ steht jetzt zunächst für den Wert 0. Später wird unter dieser Variable gespeichert, ob der Taster gedrückt ist oder nicht.
    5. void setup() //Hier beginnt das Setup.
    6. {
    7. mySwitch.enableTransmit(10); // Der Sender wird an Pin 10 angeschlossen
    8. pinMode(taster, INPUT); //Der Pin mit dem Taster (Pin 7) ist jetzt ein Eingang.
    9. }
    10. void loop()
    11. { //Mit dieser Klammer wird der Loop-Teil geöffnet.
    12. tasterstatus=digitalRead(taster); //Hier wird der Pin7 ausgelesen (Befehl:digitalRead). Das Ergebnis wird unter der Variable „tasterstatus“ mit dem Wert „HIGH“ für 5Volt oder „LOW“ für 0Volt gespeichert.
    13. if (tasterstatus == HIGH)//Verarbeitung: Wenn der taster gedrückt ist (Das Spannungssignal ist hoch)
    14. {//Programmabschnitt des IF-Befehls öffnen.
    15. mySwitch.send(5678, 24); // Der 433mhz Sender versendet die Dezimalzahl „5678“
    16. delay (50); // 50 Millisekunden Pause
    17. } //Programmabschnitt des IF-Befehls schließen.
    18. else //...ansonsten...
    19. { //Programmabschnitt des else-Befehls öffnen.
    20. mySwitch.send(1234, 24); // Der 433mhz Sender versendet die Dezimalzahl „1234“
    21. } //Programmabschnitt des else-Befehls schließen.
    22. } //Mit dieser letzten Klammer wird der Loop-Teil geschlossen.



    und das ist der Empfängercode


    C-Quellcode

    1. #include <RCSwitch.h>
    2. int LED=12;
    3. RCSwitch mySwitch = RCSwitch();
    4. void setup()
    5. {
    6. Serial.begin(9600);
    7. mySwitch.enableReceive(0); // Empfänger ist an Interrupt-Pin "0" - Das ist am UNO der Pin2
    8. pinMode(LED, OUTPUT); //Der Pin mit der LED (Pin13) ist jetzt ein Ausgang.
    9. }
    10. void loop() {
    11. if (mySwitch.available()) // Wenn ein Code Empfangen wird...
    12. {
    13. int value = mySwitch.getReceivedValue(); // Empfangene Daten werden unter der Variable "value" gespeichert.
    14. if (value == 0) // Wenn die Empfangenen Daten "0" sind, wird "Unbekannter Code" angezeigt.
    15. {
    16. Serial.println("Unbekannter Code");
    17. }
    18. else // Wenn der Empfangene Code brauchbar ist, wird er hier an den Serial Monitor gesendet.
    19. {
    20. Serial.print("Empfangen: ");
    21. Serial.println( value );
    22. if (value == 5678) //Verarbeitung: Wenn der Arduino die Zahl "5678" empfängt, dann...
    23. { //Programmabschnitt des IF-Befehls öffnen.
    24. digitalWrite(LED, HIGH); //dann soll die LED leuchten
    25. delay (500); //und zwar für 0,5 Sekunden (500 Millisekunden).
    26. digitalWrite(LED, LOW); //danach soll die LED aus sein.
    27. } //Programmabschnitt des IF-Befehls schließen.
    28. }
    29. mySwitch.resetAvailable(); // Hier wird der Empfänger "resettet"
    30. }
    31. }
    Bilder
    • Grobe Skizze Arduino 433 Funksender.jpg

      70,21 kB, 987×540, 109 mal angesehen
    • Sender-Steckplan.jpg

      95,25 kB, 768×603, 111 mal angesehen
    • Empfänger-Steckplan.jpg

      93,84 kB, 768×594, 104 mal angesehen
    @Der Laie
    Dein Code (Warum wird der jetzt wieder gepostet?) und deine Bilder haben mal nichts mit dem zu tun was du machen willst. Mit ausnahme vieleicht deine Skizze und diese ist nicht zielführend.
    Das Projekt was du vorhast ist schon eher sehr hoch gesteckt.

    Schade finde ich das du meine Links die ich gepostet habe nicht mal verfolgt hast, auch hast du keine meiner Fragen beantwortet.
    Wir wissen nun genauso viel (eher wenig) wie vorher. Solange du die Fragen nicht beantwortest und immer wieder das selbe Postest kann dir wohl niemand hier helfen.
    Und dehalb bin ich jetzt auch mal raus, versucht habe ich es ja.

    Grüße
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Der Laie schrieb:

    Hoffe es ist jetzt mehr Einsichtlich was ich vor haben
    Und wie/wo genau benötigst du nun Hilfe?

    Beispiel für eine klare Fragestellung:
    Ich komme bei XY nicht weiter weil abc. Was muss ich tun damit bla?

    oder willst du etwa fertigen Code?
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @all: Der Code mit Bildern ist so ziemlich 1:1 von dieser Website. Eigenleistung - außer dem »Recherchieren« - gleich Null (C#) bzw. Nothing (VB.Net).
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Ja, und wie schon gesagt. Da geht es nicht mal um das was der TE machen will. Auf der Seite geht es rein um einen Hardware-Taster mit einer LED. Weiter nichts.

    Also hat er sich mit der Materie null auseinandergesetzt und dann gleich so ein vorhaben. Ich hab mich ja schon ein wenig mit den Dingern gespielt, und so einfache Dinge klappen auch ganz gut, aber das was der TE vir hat ist schon ne andere Nummer, da muss man viel lernen.
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    @Der Laie Bitte unterlasse das Stellen von Programmier-Fragen über Konversationen. Genau dafür ist das Forum da. Formuliere in Deinen zukünftigen Threads bitte auch mal ein konkretes Problem bzw. eine konkrete Frage, damit Dir geholfen werden kann. So bringt das nichts.

    Da hier keine Eigeninitiative und auch keine wirkliche Fragestellung zu sehen ist: Thema geschlossen.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!: