Show Posts
|
|
Pages: 1 [2] 3
|
|
18
|
International / Deutsch / Re: Einfache if-Abfrage
|
on: November 15, 2012, 06:16:33 am
|
|
Oh entschuldige ich habe mich verschaut.
Es ist ein externer Pulldown Widerstand
Edit:
Mir ist aufgefallen wenn ich den Taster auslasse dass der Schrittmotor 1 Schritt macht und danach wieder aufhört.
|
|
|
|
|
20
|
International / Deutsch / Re: Einfache if-Abfrage
|
on: November 15, 2012, 04:45:04 am
|
Also der Motor hängt an pin 8,9,10,11 und der Taster an Pin 4 #include <Time.h> #include <DCF77.h> #include <Utils.h> #include <Stepper.h>
// change this to the number of steps on your motor
// create an instance of the stepper class, specifying // the number of steps of the motor and the pins it's // attached to Stepper stepper(100, 8, 9, 10, 11);
boolean debug = true; int serspeed = 9600 ; int StandortErde = 0; int zaehler = 0;
#define DCF_PIN 2 // Connection pin to DCF 77 device #define DCF_INTERRUPT 0 // Interrupt number associated with pin
time_t time; DCF77 DCF = DCF77(DCF_PIN,DCF_INTERRUPT);
void setup() {
Serial.begin(serspeed); stepper.setSpeed(1);
if(debug) { Serial.println("Debugging aktiviert"); } DCF.Start(); }
void loop(){
time_t DCFtime = DCF.getTime(); // Check if new DCF77 time is available
if ((DCFtime!=0) && (debug = true)) { Serial.println("Time is updated"); setTime(DCFtime); } digitalClockDisplay();
if(debug = true){
// Serial.print("Zähler: "); //Serial.println(zaehler); Serial.print("Standort: "); Serial.println(digitalRead(4)); }
StandortErde = digitalRead(4);
if (StandortErde == HIGH){ stepper.setSpeed(1); stepper.step(1); zaehler = zaehler + 1; } else{ digitalWrite(8,LOW); digitalWrite(9,LOW); digitalWrite(10,LOW); digitalWrite(11,LOW); zaehler = 0; }
delay(1000);
}
void digitalClockDisplay(){ // digital clock display of the time Serial.print(hour()); printDigits(minute()); printDigits(second()); Serial.print(" "); Serial.print(day()); Serial.print(" "); Serial.print(month()); Serial.print(" "); Serial.print(year()); Serial.println(); }
void printDigits(int digits){ // utility function for digital clock display: prints preceding colon and leading 0 Serial.print(":"); if(digits < 10) Serial.print('0'); Serial.print(digits); }
|
|
|
|
|
21
|
International / Deutsch / Einfache if-Abfrage
|
on: November 15, 2012, 04:07:14 am
|
|
Hallo erstmals
und zwar ich habe eine einfache If Abfrage die nicht ganz so funktioniert wie sie soll.
In der Variable StandortErde steht ob ein Eingang HIGH oder LOW ist.
Wenn der Befehl "stepper.step(1);" nicht in der If Schleife steht funktioniert er. Wenn der Eingang auf HIGH ist passiert garnichts. Doch beim Wechsel von HIGH auf LOW macht der Schrittmotor 1 Schritt.
Die Else Verwzeigung ist nur dazu da den Schrittmotor abzuschalten. Diese funktioniert einwandfrei.
if (StandortErde == HIGH){ stepper.step(1); delay(100); zaehler = zaehler + 1; } else{ digitalWrite(8,LOW); digitalWrite(9,LOW); digitalWrite(10,LOW); digitalWrite(11,LOW); zaehler = 0; }
|
|
|
|
|
24
|
International / Deutsch / Re: Zeitsignalempfänger anschließen
|
on: October 05, 2012, 04:53:59 am
|
|
Also ich habe den internen Pullup verwendet.
Und den Sketch habe ich von der DCF77 Library
Der Sketch:
/* * InternalClockSync.pde * example code illustrating time synced from a DCF77 receiver * Thijs Elenbaas, 2012 * This example code is in the public domain. This example shows how to fetch a DCF77 time and synchronize the internal clock. In order for this example to give clear output, make sure that you disable logging from the DCF library. You can do this by commenting out #define VERBOSE_DEBUG 1 in Utils.cpp. */
#include "DCF77.h" #include "Time.h"
#define DCF_PIN 13 // Connection pin to DCF 77 device #define DCF_INTERRUPT 0 // Interrupt number associated with pin
time_t time; DCF77 DCF = DCF77(DCF_PIN,DCF_INTERRUPT);
void setup() { Serial.begin(9600); DCF.Start(); Serial.println("Waiting for DCF77 time ... "); Serial.println("It will take at least 2 minutes until a first update can be processed."); }
void loop() { delay(1000); time_t DCFtime = DCF.getTime(); // Check if new DCF77 time is available if (DCFtime!=0) { Serial.println("Time is updated"); setTime(DCFtime); } digitalClockDisplay(); }
void digitalClockDisplay(){ // digital clock display of the time Serial.print(hour()); printDigits(minute()); printDigits(second()); Serial.print(" "); Serial.print(day()); Serial.print(" "); Serial.print(month()); Serial.print(" "); Serial.print(year()); Serial.println(); }
void printDigits(int digits){ // utility function for digital clock display: prints preceding colon and leading 0 Serial.print(":"); if(digits < 10) Serial.print('0'); Serial.print(digits); }
Im Serial Monitor sieht man immer nur das Unix Anfangsdatum also 1 Jan 1970
|
|
|
|
|
25
|
International / Deutsch / Re: Zeitsignalempfänger anschließen
|
on: October 05, 2012, 04:30:53 am
|
|
Tja ich habe den DCF Zeitsignalempfänger schon angeschlossen. und zwar Eingang an 5V, Ground und den DCF Out an den 13 Pin an Arduino.
Doch es funktioniert nicht.
Als Beispiel habe ich den Sketch Internal Clock sync verwendet
|
|
|
|
|
26
|
International / Deutsch / Zeitsignalempfänger anschließen
|
on: October 05, 2012, 04:11:15 am
|
|
Hallo erstmals
und zwar ich habe mir den Zeitsignalempfänger Dcf BN 641138 von Conrad gekauft.
und wie soll ich den am Arduino anschließen?
Vielen Dank im Voraus Felix
|
|
|
|
|
28
|
International / Deutsch / Aktuelles Datum herausfinden
|
on: October 04, 2012, 04:37:00 am
|
|
Hallo erstmals
wie bekomme ich die aktuelle Uhrzeit und Datum über den Computer auf den Arduino? Am besten im Sekundenformat
Vielen Dank im Voraus Felix
|
|
|
|
|
30
|
International / Deutsch / Re: Schrittmotoren Geschwindigkeit per Datum
|
on: September 25, 2012, 11:29:56 am
|
|
Danke für eure Hilfe
und zwar das ich nur 50 umdrehungen pro jahr brauche kommt daher dass ich ein Planetarium baue dass sich 1 mal im Jahr rundum drehen soll. Und ich eine Übersetzung von 1:50 habe.
Glaubt ihr es ist die beste Idee das man einen Nullpunkt definiert und dort immer wegrechnet?
außerdem soll man per Knopfdruck die Umdrehungsgeschwindigkeit auf 30sek pro Umdrehung erhöhen können.
|
|
|
|
|