Show Posts
Pages: 1 ... 30 31 [32] 33 34 ... 43
466  International / Deutsch / Re: loop on: March 18, 2011, 06:54:05 pm
Also nochmal.

Das ist die main() Funktion:
Code:
int main(void)
{
    init();

    setup();

    for (;;)
        loop();

    return 0;
}
Das entscheidende ist dieser Teil:
Code:
   for (;;)
        loop();
In einer Endlosschleife wird immer wieder die Funktion loop() aufgerufen. Da das Programm aber nur sequentiell abgearbeitet werden kann, kommt es an diesen Punkt erst wieder zurück wenn die Funktion loop() verlassen wird.

- loop() wird aufgerufen
- loop() wird bis zum Ende oder bis zu einem "return" durchlaufen
- loop() wird verlassen
- durch die Endlosschleife wird loop() sofort wieder aufgerufen
- und wenn er nicht gestorben ist...
467  International / Deutsch / Re: Arduino Praxiseinstig Buch (brauche hilfe bei den Beispielen) on: March 18, 2011, 07:56:36 am
 smiley-mr-green smiley-mr-green smiley-mr-green

Ich geb aber zu: hab den Satz dreimal gelesen, bis ich kapiert hab was Du meinst.
468  International / Deutsch / Re: Arduino Praxiseinstig Buch (brauche hilfe bei den Beispielen) on: March 18, 2011, 07:45:54 am
C/C++ ist 'case sensitive', unterscheidet somit zwischen Groß-/Kleinschreibung.

Das globale Objekt für die serielle Schnittstelle heißt 'Serial' und nicht 'serial'.
Somit kennt der Compiler 'serial' nicht und bringt zurecht diese Fehlermeldung.

@volvodani
Der Compiler ist das Mimöschen, nicht die IDE.
469  International / Deutsch / Re: loop on: March 18, 2011, 07:41:14 am
Jedes C/C++ Programm startet über die Funktion main().
In Arduino Programmen ist sie jedoch nicht vorhanden weil sie automatisch beim compilieren hinzugefügt wird.
Der Inhalt dieser main() Funktion lautet:
Code:
int main(void)
{
    init();

    setup();

    for (;;)
        loop();

    return 0;
}
470  International / Deutsch / Re: Mehrere Hardware mit dem Arduino verbinden on: March 16, 2011, 05:35:58 pm
Pololu Micro Serial Servo Controller: http://www.watterott.com/de/Pololu-Micro-Serial-Servo-Controller
Damit kannst Du bis zu acht Servos steuern und brauchst am Arduino nur einen Pin.
Und die Windenservos HS-785HB machen damit 9 Umdrehungen (auch wenn im Datenblatt nur 3,5 angegeben sind, alles eine Sache der Ansteuerung).
471  International / Deutsch / Re: Servomotor und tips gesucht on: March 15, 2011, 09:06:37 am
Windenservos sind in der Regel von der etwas kräftigeren Sorte. Aber auch diese machen max. 10 Umdrehungen und sind geschwindigkeitsmäßig eher im mittleren Bereich anzusiedeln. Ein guter Stepper ist da schneller.

Mit meinem billigen Test-Schrittmotor und dem Easydriver von Watterott schaff ich locker 2 Umdrehungen/Sek. Mehr wirst Du mit einem Servo auch nicht hinbekommen.

Wenn Dein Stepper Schritte verliert wirst Du ihn vermutlich mit zu geringer Spannung betreiben. Welchen Steppertreiber verwendest Du?
472  International / Deutsch / Re: Automatisierter Einstellschlitten - erstmal Maschinenbau on: March 14, 2011, 05:30:51 am
Ich befürchte, dass Du mit der ganzen Konstruktion auf Dauer nicht glücklich werden wirst. Ein Fortschritt von 4,7 cm pro Umdrehung ist viel zu grob. Ich glaube nicht, dass Du mit dem Teil mechanisch die angedachten 0,235mm umsetzen können wirst.
Zudem: In dem Bereich, wo Stacking langsam interessant und notwendig wird, ist eigentlich 1/10 mm fast das Minimum.
473  International / Deutsch / Re: LED Lampe per Interrupt manuell über POTI dimmen on: March 02, 2011, 05:02:31 am
Lies Dir das mal durch:
http://www.arduino.cc/playground/Main/PcInt
bzw.
http://www.arduino.cc/playground/Main/PinChangeInt
474  International / Deutsch / Re: Poti-Werte nicht konstant on: March 01, 2011, 05:21:01 pm
@Udo

Wo Du recht hast, hast Du recht.
475  International / Deutsch / Re: Poti-Werte nicht konstant on: March 01, 2011, 07:12:09 am
Quote
@MaFu
kannst du mir mal den Code erlautern ich komme mit dem Bitshift nicht klar. Bin interessiert meinen Code zu verbessern bzw genau zu verstehen

Bitshift eine Position nach rechts entspricht einer Division durch 2.
Bitshift eine Position nach links entspricht einer Multiplikation mit 2.

Gehen wir mal davon aus, "wert" wäre 40 und analogRead() liest 36.
wert = (wert - (wert >> SMOOTH_FACTOR)) + (analogRead(0) >> SMOOTH_FACTOR);
ist also
wert = (40 - (40 >> 3)) + (36 >> 3);
40 ist binär 00101000, >>3 schiebt 3 Positionen nach rechts: 00000101 = 5
36 ist binär 00100100, >>3 schiebt 3 Positionen nach rechts: 00000100 = 4
somit ergibt sich:
wert = (40 - (5)) + (4);
neuer Wert ist 39
476  International / Deutsch / Re: Poti-Werte nicht konstant on: February 28, 2011, 10:13:11 am
Routine zum Glätten der Eingabe:
Code:
const int SMOOTH_FACTOR = 3;
...
wert = (wert - (wert >> SMOOTH_FACTOR)) + (analogRead(0) >> SMOOTH_FACTOR);
477  International / Deutsch / Re: Arduino Bootloader on: February 26, 2011, 07:09:31 am
Quote
1) Wurden die Arduino Bootloader mit der Arduino IDE oder dem AVR Studio erzeugt ?
Kann man mit der Arduino IDE auch selbstgestrickte Bootloader erzeugen oder geht das nur mit dem AVR Studio ?
AVR Studio

Quote
2) Sind die Arduino Sketche Arduino Bootloader abhängig ?
Sind die Sketche auch auf einem IC lauffähig der keinen Bottloader hat ?
Wenn ich eine Hex-Datei eines Sketches mit der AVRISP per ISP übertrage dann wird doch ein eventuell vorhandener Arduino Bootloader überschrieben oder ?
Der Bootloader ist ausschließlich für das Übertragen der Sketche zuständig, diese sind somit auch ohne Bootloader lauffähig.
Wenn die Sketche per ISP übertragen werden wird der Bootloader überschrieben.
478  International / Deutsch / Re: Mehrere Variablen an Arduino schicken on: February 21, 2011, 05:27:26 am
Das mag schon sein.
Aber da steht eben nicht
Code:
     Serial.print(data[0]);
sondern
Code:
     Serial.print(data[0]);
     Serial.print(data[1]);
     Serial.print(data[2]);
     Serial.print(data[3]);
     Serial.print(data[4]);
     Serial.print(data[5]);
     Serial.print(data[6]);
     Serial.print(data[7]);
     Serial.print(data[8]);
Und somit wird eben nicht nur ein Byte ausgegeben.
479  International / Deutsch / Re: Mehrere Variablen an Arduino schicken on: February 21, 2011, 04:10:22 am
Sag mal, Funkheld: so übermäßig fit in der Programmierung bist Du noch nicht, oder? (nicht bös gemeint)
Es lag einfach daran, dass Mazell einen Fehler in seinem Sourcecode hatte. Ist eigentlich recht leicht zu sehen, wenn man sich den Code ansieht und sich nicht gleich auf vermeintliche Arduino-Fehler versteift.
480  International / Deutsch / Re: send int as Ascii on: February 11, 2011, 07:50:42 am
Den String musst Du vorher als char Array definieren.
__radix ist die Angabe des Zahlensystems, für das Dezimalsystem also einfach 10 angeben.
Pages: 1 ... 30 31 [32] 33 34 ... 43