- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 13

Thema: Arduino Motor Steuerung Code

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Zitat Zitat von Flexgate Beitrag anzeigen
    Hi

    klappt leider auch nicht, bekomme wieder nur ein fiepen weil der Pmw Wert durch den Ascii Code um die 50 liegt (denke ich)
    Trotzdem Danke für deinen Versuch

    Gruß
    Gibt es denn bei C keinen Befehl mit den aus einem ASCII String eine integer Zahl gemacht werden kann?

    Code:
    $regfile = "m48def.dat"                                     ' specify the used micro
    
    $crystal = 8000000                                         ' used crystal frequency
    
    $baud = 19200                                               ' use baud rate
    
    $hwstack = 32                                               ' default use 32 for the hardware stack
    
    $swstack = 10                                               ' default use 10 for the SW stack
    
    $framesize = 40                                             ' default use 40 for the frame space
    
     
    
    Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
    
     
    
    Dim A As Byte , S As String * 10
    
    S = "123"
    
    A = Val(s)                                                 'convert string
    
    Print A                                                     ' 123
    
    End
    Gruß Richard

  2. #2
    Erfahrener Benutzer Begeisterter Techniker Avatar von Torrentula
    Registriert seit
    10.10.2009
    Ort
    Procyon A
    Beiträge
    355
    Gibt es denn bei C keinen Befehl mit den aus einem ASCII String eine integer Zahl gemacht werden kann?
    Doch schon: atoi();

    Code:
    char string[20] = "123";
    int Integer;
    
    Integer = atoi(string);
    Serial.println(Integer);
    Aber im Falle des Arduino passiert das automatisch, wenn man die Konsoleneingabe in einen Integer einliest. Und wenn man die Konsoleneingabe in ein char einliest, dann wird diese als ASCII-Zeichen gespeichert. Wenn man die Eingabe in einen String einliest, dann wird diese al String gespeichert.

    Deswegen ist es auch einfacher mit der Arduino IDE zu programmieren. Man muss sich nicht ständig um Datentyp-Konvertierungen gedanken machen, wenn man Daten einliest bzw. Daten ausgibt.

    Die Arduino IDE nimmt einem ein ganzes Stück arbeit ab. Wenn sie dies nicht tun würde, müsste man sich in dem Code oben auch noch um die PWM-Erzeugung, die includes und und und kümmern.
    MfG Torrentula

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Zitat Zitat von Torrentula Beitrag anzeigen
    Doch schon: atoi();

    Code:
    char string[20] = "123";
    int Integer;
    
    Integer = atoi(string);
    Serial.println(Integer);
    Aber im Falle des Arduino passiert das automatisch, wenn man die Konsoleneingabe in einen Integer einliest. Und wenn man die Konsoleneingabe in ein char einliest, dann wird diese als ASCII-Zeichen gespeichert. Wenn man die Eingabe in einen String einliest, dann wird diese al String gespeichert.

    Deswegen ist es auch einfacher mit der Arduino IDE zu programmieren. Man muss sich nicht ständig um Datentyp-Konvertierungen gedanken machen, wenn man Daten einliest bzw. Daten ausgibt.

    Die Arduino IDE nimmt einem ein ganzes Stück arbeit ab. Wenn sie dies nicht tun würde, müsste man sich in dem Code oben auch noch um die PWM-Erzeugung, die includes und und und kümmern.

    Dann verstehe ich das Problem nicht richtig, Der PWM Wert ist hier ja nicht z.b. int 128 sondern der ASCII wert 49 DEZ 1. Also nur die 1. Stelle von 128. Man muss also einen String "128" empfangen und dann in eine Zahl wandeln, dann sollte auch der richtige Wert im PWM Register landen?

    Irgendwann muss ich mich doch noch einmal um C kümmern. Wenn bloß die Tastaturbelegung mit den ganzen () {} [] nicht wäre.

    Gruß Richard
    Geändert von Richard (06.08.2011 um 11:45 Uhr)

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    13.07.2011
    Beiträge
    16
    Hi

    erst mal danke für eure Antworten.

    Hab beide Codes von Torrentula kopiert und ausgeführt.
    Beim ersten kommt nur ein Fiepen, beim 2ten passiert leider gar nix. Führe ich meinen zweiten Code aus können mit 200+ \ 180- \ 255+ die Motoren gesteuert werden. Also an der Schaltung liegt es nicht.

    Ich kann mich leider erst Morgen damit weiter beschäftigen weil ich gleich auf Tour bin.

    Gruß
    Geändert von Flexgate (06.08.2011 um 12:17 Uhr)

  5. #5
    Erfahrener Benutzer Begeisterter Techniker Avatar von Torrentula
    Registriert seit
    10.10.2009
    Ort
    Procyon A
    Beiträge
    355
    Irgendwie ist die Konvertierung von ASCII zu integer komisch.... deswegen auch die Lösung mit separaten Eingaben... allerdings zickt mein Programm auch ein wenig rum, manchmal übernimmt es keine Werte

    Zum Verzweifeln

    Torrentula
    MfG Torrentula

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    13.07.2011
    Beiträge
    16
    Hi

    das ganze funktioniert auch ganz gut mit Firmata, hier downloaden:

    http://firmata.org/wiki/Main_Page

    in der Arduino IDE 0022 mit dem Uno folgenden Sketch öffnen und auf das Board hochladen: (mit dem Uno erscheinen nur mit diesem Sketch Buttons in Firmata)

    File -> Examples -> Firmata -> StandardFirmata_2_2_forUNO_0_3

    Danach die Firmata.exe als Admin ausführen und den richtigen Com Port auswählen.
    Anschließend kann in der Software per Mausklick High \ Low \ PMW eingestellt werden.

    siehe:
    http://firmata.org/wiki/File:Firmata...screenshot.png

    Gruß
    Geändert von Flexgate (09.08.2011 um 18:55 Uhr)

  7. #7

    Servo drosseln

    Moin

    ich müsste einen servo dazu bringen, das die bewegungsgeschwindichkeit mit einem poti einstellbar ist.kann mir da jemand helfen. Please

Ähnliche Themen

  1. ARDUINO ARDUINO l293D + MegaservoLib
    Von m1ch15inner im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 2
    Letzter Beitrag: 11.07.2011, 12:50
  2. Bascom code auf Arduino Board Flashen **Hilfe**
    Von KoaxPilot im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 13
    Letzter Beitrag: 23.06.2011, 10:14
  3. Motor Steuerung
    Von Sigi123 im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 7
    Letzter Beitrag: 28.10.2010, 20:01
  4. Arduino PWM Code
    Von Lota im Forum Asuro
    Antworten: 2
    Letzter Beitrag: 20.12.2008, 10:03
  5. [ERLEDIGT] PIC µc-code - stepper motor
    Von im Forum PIC Controller
    Antworten: 2
    Letzter Beitrag: 13.04.2005, 11:29

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress