- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 13

Thema: Anfänger verzweifelt an der Arduino Software | atan

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    28.02.2012
    Beiträge
    12
    Zitat Zitat von Sim0n Beitrag anzeigen
    Meinst Du damit ein Eingang der ANALOG IN Ports?
    Nein ich meine damit den Anschluss mit dem du ein Arduino Board mit dem PC verbinden kannst.
    Die Arduino Boards haben einen USB Anschluss (Typ B).

    Bild hier  

    Zitat Zitat von Sim0n Beitrag anzeigen
    Ich meinte eigentlich nur eine virtuelle Durchführung der Berechnung und das ich danach einfach den Wert von y auslesen kann...
    Ich weiß nicht ob es Emulatoren dafür gibt, i.d.R musst du dein Programm auf das Board hochladen um es auszuführen.

    Zitat Zitat von Sim0n Beitrag anzeigen
    wie ist es denn nach dem anschließen von Arduino und PC möglich?
    Du lädst das Programm per 'upload' auf dein Board hoch und schaust dir dann die Ausgabe, per USB Verbindung, über den Serial Monitor (siehe oben) an.
    Geändert von Bytemuncher (28.02.2012 um 21:17 Uhr)

  2. #2
    Neuer Benutzer Öfters hier Avatar von Sim0n
    Registriert seit
    30.12.2011
    Beiträge
    20
    Hey,

    ok verstehe.

    Doch wenn ich nun den Code hier uploade:

    #include <math.h>
    int y,x;
    int sensorbreite = 14.9;
    int brennweite = 70;
    int a = sensorbreite/2/brennweite;

    void setup(){
    Serial.begin(9600);
    }

    void loop(){
    y = atan(a);
    x = 2*y*45/atan(1);
    Serial.println(x);
    }

    Dann den Serialmonitor anschaue... werden, im Gegensatz zum Beispiel (20), nur Nullen ausgegeben...

    was habe ich da falsch gemacht?

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    28.02.2012
    Beiträge
    12
    Du versuchst Kommazahlen in einem int-Datentyp zu speichern. Da int nur ganze Zahlen aufnehmen kann, wird alles hinterm Komma abgeschnitten. Du kannst float als Datentyp benutzen. So sollte es gehen:

    Code:
    #include <math.h>
    float y,x;
    float sensorbreite = 14.9;
    int brennweite = 70;
    float a = sensorbreite/2/brennweite;
    
    void setup(){
    Serial.begin(9600);
    }
    
    void loop(){
    y = atan(a);
    x = 2*y*45/atan(1);
    Serial.println(x);
    }

  4. #4
    Neuer Benutzer Öfters hier Avatar von Sim0n
    Registriert seit
    30.12.2011
    Beiträge
    20
    0 kommt immer noch raus..

    Aber eigentlich sollten nicht 0,106 herauskommen, sondern 12,5

    Meine Grundformel war (2*ARCTAN(14,9/2/70))*45/ARCTAN(1)
    Die Formel habe ich ja einfach in die Arduino Software übertragen....

    Wie kann das denn kommen, dass da so eine Differenz entsteht?

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    28.02.2012
    Beiträge
    12
    Zitat Zitat von Sim0n Beitrag anzeigen
    0 kommt immer noch raus..

    Aber eigentlich sollten nicht 0,106 herauskommen, sondern 12,5
    Entschuldige, ich hatte nicht die gesamte Formel betrachtet sonder nur "sensorbreite/2/brennweite".
    Das immer noch 0 raus kommt lag daran, dass ich übersehen habe das in x und y auch Kommazahlen gespeichert werden. Ist jetzt editiert, probier es noch mal.

  6. #6
    Neuer Benutzer Öfters hier Avatar von Sim0n
    Registriert seit
    30.12.2011
    Beiträge
    20
    Wundervoll, jetzt funktionierts perfekt.

    Vielen Dank für Deine Mühe

    Ich werde mich melden, falls ich wieder Hilfe zu dem Projekt benötige!

  7. #7
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.694
    Zitat Zitat von Sim0n Beitrag anzeigen
    ... eigentlich sollten ... 12,5 ...
    Zitat Zitat von Sim0n Beitrag anzeigen
    Wundervoll, jetzt funktionierts perfekt ...
    Wundert mich eigentlich, dass es (perfekt) funktioniert. Denn meine Controller rechnen unter C den atan zum Argument radiant aus. Das gäbe dann bei Deinem Beispiel mit dem Taschenrechner 12,15. Wenn ich Dein Beispiel
    >> Grundformel war (2*ARCTAN(14,9/2/70))*45/ARCTAN(1)
    mit dem atan-Argument als Grad (90-Grad-Basis) rechne, dann bekomme ich allerdings ebenfalls 12,15. Ist das nun ein seltsamer Zufall? Denn beispielsweise ist mit
    radiant: 45/ARCTAN(1) = 57,296
    dagegen mit
    Grad: 45/ARCTAN(1) gleich 1
    Ciao sagt der JoeamBerg

  8. #8
    Neuer Benutzer Öfters hier Avatar von Sim0n
    Registriert seit
    30.12.2011
    Beiträge
    20
    Zitat Zitat von oberallgeier Beitrag anzeigen
    Wundert mich eigentlich, dass es (perfekt) funktioniert. Denn meine Controller rechnen unter C den atan zum Argument radiant aus. Das gäbe dann bei Deinem Beispiel mit dem Taschenrechner 12,15. Wenn ich Dein Beispiel
    >> Grundformel war (2*ARCTAN(14,9/2/70))*45/ARCTAN(1)
    mit dem atan-Argument als Grad (90-Grad-Basis) rechne, dann bekomme ich allerdings ebenfalls 12,15. Ist das nun ein seltsamer Zufall? Denn beispielsweise ist mit
    radiant: 45/ARCTAN(1) = 57,296
    dagegen mit
    Grad: 45/ARCTAN(1) gleich 1
    Huhu,

    eben habe ich nochmal genau das gleiche Programm von gestern auf den Arduino geuploaded...und was passierte? - Fehler, die Bibliothek konnte nicht richtig gelesen werden und atan wurde nicht deklariert O______o
    Habe dann einfach mal #include math.h rausgenommen...dann gings - komisch

    Zu Dir Oberallgeier, doch es wird alles in jeder Form so ausgerechnet, wie es sein sollte - Gegengetestet mit einem, für diese Funktion, funktionierendem Programm.

    Bis jetzt läuft also alles wieder glatt!

Ähnliche Themen

  1. Antworten: 25
    Letzter Beitrag: 15.08.2016, 19:45
  2. Suche verzweifelt usb.h
    Von Furtion im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 31.03.2008, 18:13
  3. Anfänger Frage: Realisation eines Software-Dongles
    Von MALIBOO im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 18
    Letzter Beitrag: 22.02.2007, 17:33
  4. Anfänger verzweifelt! Temp von DS 1631 auf IIC Bus LCD
    Von rookie im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 0
    Letzter Beitrag: 06.01.2006, 22:52
  5. Keil C51: atan() liefert falschen rückgabewert??
    Von buttwiener im Forum Software, Algorithmen und KI
    Antworten: 1
    Letzter Beitrag: 01.07.2005, 13:54

Berechtigungen

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

Solar Speicher und Akkus Tests