VB und Arduino (ON/OFF reicht nicht)

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von 00yoshi.

    VB und Arduino (ON/OFF reicht nicht)

    Hallo ich hab mit vb das eine einfache on/off schaltung für mein Arduino UNO gebaut.


    ARDUINO

    C-Quellcode

    1. int ledPin = 11;
    2. void setup() {
    3. Serial.begin(9600);
    4. pinMode(ledPin, OUTPUT);
    5. digitalWrite(ledPin, LOW);
    6. }
    7. void loop(){
    8. while (Serial.available() == 0);
    9. int val = Serial.read() - '0';
    10. if (val == 1) {
    11. Serial.println("LED on");
    12. digitalWrite(ledPin, HIGH);
    13. }
    14. else if (val == 0)
    15. {
    16. Serial.println("LED OFF");
    17. digitalWrite(ledPin, LOW);
    18. }
    19. else
    20. {
    21. }
    22. Serial.println(val);
    23. Serial.flush();
    24. }


    Visual Basic

    VB.NET-Quellcode

    1. Imports System.IO
    2. Imports System.IO.Ports
    3. Imports System.Threading
    4. Imports System.Security.Cryptography
    5. Public Class Form1
    6. Shared _continue As Boolean
    7. Shared _serialPort As SerialPort
    8. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    9. SerialPort1.Close()
    10. SerialPort1.PortName = "com3" 'change com port to match your Arduino port
    11. SerialPort1.BaudRate = 9600
    12. SerialPort1.DataBits = 8
    13. SerialPort1.Parity = Parity.None
    14. SerialPort1.StopBits = StopBits.One
    15. SerialPort1.Handshake = Handshake.None
    16. SerialPort1.Encoding = System.Text.Encoding.Default 'very important!
    17. End Sub
    18. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    19. SerialPort1.Open()
    20. SerialPort1.Write("1")
    21. SerialPort1.Close()
    22. End Sub
    23. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    24. SerialPort1.Open()
    25. SerialPort1.Write("0")
    26. SerialPort1.Close()
    27. End Sub
    28. End Class


    Meine Frage ist ob man auch einzelne Pins ansteuern kann. Bitte um Hilfe.

    Gruß Julian

    Verschoben aus "Sonstige Problemstellungen". Code-Tags eingefügt. ~Thunderbolt

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

    Ich weis nicht ob es so funktioniert aber sende z.b. eine 3 an den Arduino und schreibe dort dann eine if-Abfrage, ob val 3 ist, wenn ja dann soll der Arduino ein beliebigen Pin HIGH schalten.
    ​Smartnotr - ein intelligentes Notizprogramm
    zum Thread

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Mokki“ ()

    Sende die PIN-Nummer, ein trenn-zeichen und einen Zustand.
    z.B. 11-0 Würde Pin 11 auf LOW setzten.

    mfg

    gfc

    Simples Skript

    Ähm ich habe grad ne DLL im Showroom veröffentlicht, wurde noch nicht freigeschaltet.
    Hier mit geht's einfach:
    Spoiler anzeigen

    C-Quellcode

    1. byte Buffer[2];
    2. void setup() {
    3. Serial.begin(115200);
    4. }
    5. void loop() {
    6. if (Serial.available()) {
    7. Buffer[0] = Serial.read();
    8. Buffer[1] = Serial.read();
    9. Buffer[2] = Serial.read();
    10. switch (Buffer[0]) {
    11. //Set Pin Modes
    12. case 1:
    13. switch (Buffer[1]) {
    14. case 1:
    15. pinMode(Buffer[2], OUTPUT);
    16. break;
    17. case 2:
    18. pinMode(Buffer[2], INPUT);
    19. break;
    20. case 3:
    21. pinMode(Buffer[2], INPUT_PULLUP);
    22. break;
    23. };
    24. break;
    25. //Set Digital Outputs
    26. case 2:
    27. switch(Buffer[1]) {
    28. case 1:
    29. digitalWrite(Buffer[2], LOW);
    30. break;
    31. case 2:
    32. digitalWrite(Buffer[2], HIGH);
    33. break;
    34. };
    35. break;
    36. //Set Analog Outputs
    37. case 3:
    38. analogWrite(Buffer[2], Buffer[1]);
    39. break;
    40. //Read Digital Inputs
    41. case 4:
    42. if (digitalRead(Buffer[2])) {
    43. Serial.write(2);
    44. break;
    45. }
    46. else {
    47. Serial.write(1);
    48. break;
    49. }
    50. //Read Analog Inputs
    51. break;
    52. case 5:
    53. Serial.write(analogRead(Buffer[2]));
    54. break;
    55. };
    56. };
    57. }


    Ausführbare Datei entfernt! ~Thunderbolt

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