Loading...
  Show Posts
Pages: [1] 2 3 ... 38
1  International / Deutsch / Re: Hallo brauche Hilfe on: May 18, 2013, 07:03:34 am
Für sich alleine gestellt gehen die Beispiele ja und das Verfahren ist "akzeptabel".
Aber im Mischbetrieb würdest Du damit auf die Schnauze fallen. Sinnvoll und sauber geht sowas nur ohne delay().
Schau dir mal das Beispiel "Blink without delay" an. Das wäre eine Ausgangsbasis auf die man aufsetzen könnte.
Oder noch besser: Hier im Forum gibt es einen Thread, bei dem es um unterschiedliche Blinkfrequenzen mehrerer Leuchttürme geht. Das würde genau in Deine Richtung gehen, such den mal.

P.S.: und verwende bitte das nächste mal einen etwas aussagekräftigeren Threadtitel.
2  International / Deutsch / Re: arduino stepper projekt für schule on: May 15, 2013, 10:00:03 am
...
@MaFu
ja wir wollen die Taster gedrückt halten und wollten diese auch an analogRead() ranhängen.
...
Das bringt natürlich nichts. Da der Taster ja nur zwei Zustände liefern kann, liest Du bei analogRead() auch nur zwei Werte aus: 0 oder 1023.
Häng die zwei Taster einfach an normale Digitalpins und lies den Zustand über digitalRead().
3  International / Deutsch / Re: arduino stepper projekt für schule on: May 15, 2013, 09:06:35 am
Irgendwas passt da nicht.
Du redest von Push-Buttons, also Taster. Die können nur zwei Zustände annehmen (gedrückt/nicht gedrückt) und werden demzufolge digital ausgelesen. Im Sketch wiederum hast Du ein analogRead(). Hängt da der Taster dran?
4  International / Deutsch / Re: Temperaturmessung mit mehreren DS18S20 on: May 15, 2013, 12:52:28 am
Hallo Kalli,
hat funktioniert. smiley
Vielen Dank dafür.
Der Tipp von MaFu funktioniert nicht. Es wird ein Sensor angezeigt und der andere Zeigt immer den Wert 0 an.

Gruß Jens
Hast Du bei der Serial Ausgabe dann auch temp[0] und temp[1] verwendet?
Oder weiterhin temp[1] und temp[2]?

Arrays in C beginnen bei 0. Bei "MaxSensors=4" geht Dein Array somit von temp[0] bis temp[3] und NICHT von temp[1] bis temp[4]. Wenn Du dann irgendwann den Bereich von MaxSensors ausnutzt und vier Sensoren dranhängst, stehst Du vor dem nächsten Problem wenn Du erst bei temp[1] beginnst.
Code:
for (int i = 0; i < MaxSensors; i++)
  temp[i]=sensors.getTempCByIndex(i);
5  International / Deutsch / Re: Temperaturmessung mit mehreren DS18S20 on: May 12, 2013, 04:05:13 am
Oder besser noch

 temp[0]=sensors.getTempCByIndex(0);
 temp[1]=sensors.getTempCByIndex(1);
6  International / Deutsch / Re: Hilfe bei Schaltplan zum Anschluß von Ventilen on: May 07, 2013, 05:32:47 am
Bei delay() wartet der Prozessor, er kann schließlich kein Multitasking.
Lass das mit dem zusammenfassen und vor allem mit den delays.
7  International / Deutsch / Re: Dumme Frage zum Gyro MPU-6050 on: May 05, 2013, 11:54:42 am
UPDATE: Direkt an die SCL/SDA angeschlossen, funktioniert es. Aus dem Sketch von kommen jetzt auch vernünftige Daten raus.  smiley-lol


Hat jetzt noch zufällig jemand zur Fehlermeldung eine Idee

MPU6050_raw.ino:39:21: error: MPU6050.h: No such file or directory
MPU6050_raw:45: error: 'MPU6050' does not name a type
MPU6050_raw.ino: In function 'void setup()':
MPU6050_raw:64: error: 'accelgyro' was not declared in this scope
MPU6050_raw.ino: In function 'void loop()':
MPU6050_raw:76: error: 'accelgyro' was not declared in this scope

Die Bibliothek aus dem FreeIMU Zip lautet MPU60X0 und nicht MPU6050. Auch die Dateien lauten so und in den Beispielprogrammen stehen auch die richtigen includes. Bist Du sicher, dass Du nicht aus versehen Beispiele verwendest, die woanders her sind?
Wobei ich mir an Deiner Stelle die Beispiele aus dem FreeIMU Bibliotheksverzeichnis ansehen würde. Da ist eigentlich alles dabei was man braucht. Probier mal "FreeIMU_yaw_pitch_roll" aus.
8  International / Deutsch / Re: Dumme Frage zum Gyro MPU-6050 on: May 04, 2013, 06:21:10 pm
Der MPU6050 hat ein I2C Interface (SDA/SCL) und wird demnach an die I2C Schnittstelle des Arduino angeschlossen (Analog Pins 4 und 5). Hier kannst Du dich näher über I2C informieren: http://playground.arduino.cc//Main/InterfacingWithHardware#i2c

XDA/XCL ist eine zweite I2C Schnittstelle des 6050 für den Anschluss eines Magnetometers (z.B. HMC5883). Dessen Daten werden dann vom 6050 intern verarbeitet und zusammen mit den Accel./Gyro Daten ausgegeben, aus 6DOF werden dann 9DOF.

Mit ADO auf VCC oder GND kann zwischen zwei verschiedenen I2C Adressen gewählt werden. Wichtig, wenn man zwei 6050 gleichzeitig anschließen will.

INT gibt ein Interruptsignal aus, wenn Daten bereitstehen. Wird meist nicht benötigt.

Die beste Bibliothek für die Verwendung eines 6050 findest Du hier: http://www.varesano.net/projects/hardware/FreeIMU
9  International / Deutsch / Re: Platinenverbinder Arduino UNO on: May 03, 2013, 03:42:36 am
Dann nimm ein Flachbandkabel (so wie die alten Festplatten-, CD-, Floppyanschlüsse) und löte an einer Seite eine Stiftleiste an.
10  International / Deutsch / Re: Hilfe bei Schaltplan zum Anschluß von Ventilen on: May 03, 2013, 03:38:22 am
Und wenn Du es so machst wie Gunther vorschlägt, funktioniert es wie von Dir gewünscht ohne dass das Programm irgendwo wartet. Und Du bist wesentlich offener für eventuelle Erweiterungen (Beispiel: ein Display anschließen, welches den ablaufenden Countdown und den aktuellen Status anzeigt).
11  International / Deutsch / Re: Schrittmotor: Step Typ per Code ändern on: May 03, 2013, 01:06:14 am
Wie kommst Du auf analoge?
Ich hab angenommen, dass das Signal auf einem digitalen Output moduliert wird. In anderen Bereichen wird oft nach bestimmter Zeit High geschickt um die Synchronisation nicht zu verlieren.
M1/M2/M3 sind nur eine Bitcodierung für den Controller, also einfach digital auf HIGH/LOW setzen.
Quote
Abgesehen davon, dass ein Arduino überhaupt keine analogen Ausgänge hat
Hm ich dachte schon? Mein Board hat eine Beschriftung "Analog" und es gibt eine AnalogWrite funktion?
Das sind PWM-Ausgänge, hat nichts mit Analog zu tun.
Quote
Quote
Per Default macht der nur 1/16tel Schritte, was für meine Zwecke viel zu wenig ist.
Was meinst Du mit zu wenig?
Ich sehe keine Vorteil die Schrittmodi umzuschalten. Beim 1/16 Microstepping mußt Du nur 16 mal mehr Schritte machen (im Vergleich zu Vollschritten) .
Hab schon herumprobiert und festgestellt, dass er sich viel langsamer dreht(verwende diese AccellStepper library). Max geschwindigkeit und beschleunigung hab ich natürlich angepasst. Hab außerdem gelesen, dass der dann weniger Kraft hat.
Da sollte eigentlich kein Unterschied sein. Zudem läuft ein Schrittmotor wesentlich "runder", wenn es möglichst viele Microschritte macht. Was Du aber beachten musst: Für Microschritte muss der Motor mit einer mindestens drei bis viermal höheren Spannung als angegeben betrieben werden.
12  International / Deutsch / Re: Schrittmotor: Step Typ per Code ändern on: May 02, 2013, 05:48:56 pm
Ich hab einen Big Easy Driver gekauft und meinen Schrittmotor angeschlossen. Per Default macht der nur 1/16tel Schritte, was für meine Zwecke viel zu wenig ist.
Habe also die entsprechenden Anschlüsse(M1,M2,M3) verkabelt und somit auf ganze Schritte umgestellt.
Jetzt will ich das ganze aber nicht fest verkabelt haben, sondern über den Arduino steuern. Wie genau funktioniert das? Such ich mir 3 Pins aus(analoge nehm ich an ???), die ich dann mit M1/M2/M3 verbinde und setze die entsprechenden Pins dann auf 0 um die Steps zu vergrößern?

Würde mich freuen, wenn jemand helfen kann!
Danke

Wie kommst Du auf analoge?
Abgesehen davon, dass ein Arduino überhaupt keine analogen Ausgänge hat: einfach drei x-beliebige Pins nehmen und dann je nach Schrittwunsch auf HIGH oder LOW setzen. Vorher natürlich mit pinMode(pinnummer, OUTPUT) als Ausgang festlegen.
13  International / Deutsch / Re: Hilfe bei Schaltplan zum Anschluß von Ventilen on: April 30, 2013, 09:50:43 am
Du kannst die analogen Eingänge auch als Digitalpins verwenden.
Kann ich dafür auch INPUT_PULLUP verwenden?

const int TRIP = A5;   // Pin A5 = Starttaste
void setup()
{
pinMode(TRIP, INPUT_PULLUP);
}
void loop()
{
While (analogRead(TRIP) == LOW && start == false)   // wenn Taste gedrückt wird
{
startzeit = millis();
}
...

???

Aber nicht analogRead() verwenden sondern wie bei den andern Pins auch digitalRead(). Die Pins sollen ja schließlich als Digitalpins verwendet werden. Und es wird einfach weitergezählt. Analogpin 0 ist Digitalpin 14, Analogpin 1 ist Digitalpin 15, ...
14  International / Deutsch / Re: Hilfe bei Schaltplan zum Anschluß von Ventilen on: April 29, 2013, 08:30:41 am
Und hier nochmal der jetzt hoffentlich endgültige Sketch:

Code:
const int CAM = 8;
const int BUTTON = 13;

int VAR = 0;

void setup(
{
  pinMode(CAM, OUTPUT);
  pinMode(BUTTON, INPUT_PULLUP);  // aktiviert den internen Pullup (= HIGH wenn BUTTON nicht gedrueckt wird)
}

void loop()
{
  VAR = digitalRead(BUTTON);

  if (VAR == LOW)                // wenn BUTTON gedrückt wird ist VAR = LOW
  {
    delay(3000);                 // 3 Sekunden warten
    digitalWrite(CAM, HIGH);     // CAM durch HIGH auslösen
    delay(20);                   // Auslöseimpuls 20 Millisekunden
    digitalWrite(CAM, LOW);      // Verbindung trennen
  }
    else                         // wenn BUTTON nicht gedrückt wird ist VAR = HIGH
  {
    digitalWrite(CAM, LOW);
  }
}
Den else Zweig brauchst Du nicht.
15  International / Deutsch / Re: Hilfe bei Schaltplan zum Anschluß von Ventilen on: April 29, 2013, 07:55:39 am
Ok, also so:

 if (VAR == LOW)
  {
    delay(3000);
    digitalWrite(CAM, HIGH);
    delay(20);
  }
    else
  {
    digitalWrite(CAM, LOW);
  }

Ja. Ich würds aber dann gleich so schreiben:
Code:
if (VAR == LOW)
  {
    delay(3000);
    digitalWrite(CAM, HIGH);
    delay(20);
    digitalWrite(CAM, LOW);
  }
Pages: [1] 2 3 ... 38