INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 3 Bewertungen - 4.67 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Der Cafissimo-Wecker
08.07.2013, 21:50 (Dieser Beitrag wurde zuletzt bearbeitet: 08.07.2013 22:03 von admin.)
Beitrag #1
Der Cafissimo-Wecker
Liebe Arduino Community!

Auch ich bin ein neues Mitglied des Forums welches noch recht "grün" hinter den Ohren ist - bezüglich der Microcontroller Welt. Ich möchte euch gerne kurz meine Idee bzw die anfängliche Realisation vorstellen. Eigentlich ist es ganz einfach. Ich möchte von meinem Wecker morgens geweckt werden und einen fertigen Kaffee am Bett stehen haben. Nun, die Kaffeemaschine steht da schon eine ganze Weile. Ich habe vor diese Automatisierung mit zwei Servos um zu setzen.

Damit ihr euch ein Bild machen könnt :

           

Meines Wissens sollte das nun theoretisch so realisierbar sein. Leider ist der Arduino noch nicht eingetroffen! Was ich mir nun überlegt habe:

- um 6.15Uhr schaltet der linke Servo die Maschine an. Diese heizt auf, dann
- betätigt der zweite Servo die Café Crema Taste Smile
- Auf dem 2004er LCD werden Uhrzeit, Datum etc. angezeigt,
- Ist der Café fertig (nach ca. 25sek.) blinkt °dieser° LED Streifen und erinnert mich an der Geruch frisch gebrühten Cafés! dieser soll durch ein kleines Relais angesteuert werden:

   

- Ein Ultraschallsensor soll (später) verhindern, dass Café gemacht wird auch wenn ich vergessen habe, am Vorabend eine Tasse unter zu stellen.

Was denkt ihr? Ich bin Schüler und möchte mich mit dem Arduino beschäftigen. Als technisch begabt würde ich mich durchaus einschätzen. Nehme ich mir für den Anfang zu viel vor? Ist das denn für einen Anfänger realisierbar?

Ich würde mich über einige Kommentare freuen.

Grüße,

Nico

Edit:

Hier noch ein anderes Bild:

   

EDIT: Bilder von externer Seite entfernt und LOKAL hier im ArduinoForum.de gespeichert... Bitte in Zukunft darauf achten ! Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.08.2013, 11:03
Beitrag #2
RE: Der Cafissimo-Wecker
Hy, deine idee find ich ganz cool!

Nur ne kleine zugabe: Wenn du keine Skrupel hast deine Kaffeemaschine zu zerpflücken, dann bau sie doch auseinander und steuer direkt deine schaltkontakte an! Wie ich ja sehen kanns hast du auch ne relaykarte.

Somit verminderst du den kabelverhau und die rieseservos an der Mühle!

Rein technisch wenn du n LCD ansteuern kannst, dürfte der rest n kinderspiel werden. ;-)


Informier uns weiter über den stand der dinge!

Greez Wampo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.09.2013, 15:07 (Dieser Beitrag wurde zuletzt bearbeitet: 11.09.2013 15:11 von NicoW.)
Beitrag #3
RE: Der Cafissimo-Wecker
Liebe Bastlerinnen, liebe Bastler

Ich hab mich doch nun für den Arduino Mega entschieden, da mir bei dem Uno bald die Anschlussmöglichkeiten ausgegangen wären. So, erst einmal schloss ich die beiden Servos und das Display an den Arduino an. Die Servos machen ihre Arbeit wie ich mir das vorstellte und der Kaffee kommt schon mehr oder weniger automatisch. Nur das Display will überhaupt nicht. Ich lade den Beispiellose "Hallo Welt" auf den Arduino, konfiguriere 20x2 anstatt 16x2 Zeichen und es passiert rein garnichts. Manchmal erscheint ein komisches kleines Häkchen am rechten unteren Rand des Displays. Zuvor fügte ich natürlich die liquidcristal Bibliothek ein. War das denn die Richtige? Oder benötigt das Display eine andere Bibliothek?
Das ist das Display, welches ich verwenden möchte:
http://www.amazon.de/gp/product/B00ALNHT...UTF8&psc=1

Liebe Grüße und vielen Dank im Voraus für eure Hilfe Smile

Nico

   
   

Edit: @Wampo : Ich finde das ganz nett wenn sich dinge bewegen und somit die Maschine "automatisiert" wird. Danke für deinen Tipp!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.09.2013, 15:26
Beitrag #4
RE: Der Cafissimo-Wecker
Hallo zusammen,

hab einiges hin bekommen:

   
   

Folgenden Code verwende ich:

Zitat:#include <LiquidCrystal.h>
#include <Servo.h>
#include "DHT.h" // Library für DHT Sensor aufgerufen
#define DHTPIN 32 // DHT Sensor wird aus PIN 32 ausgelesen
#define DHTTYPE DHT22 // DHT Type wird auf DHT22 festgelegt
DHT dht22(DHTPIN, DHTTYPE); // DHTPIN und DHTTYE in dht22 definiert


LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
Servo motor1;
Servo motor2;
int backLight = 13;

void setup()
{
pinMode(backLight, OUTPUT);
digitalWrite(backLight, HIGH); // turn backlight on. Replace 'HIGH' with 'LOW' to turn it off.
lcd.begin(20,4); // columns, rows. use 16,2 for a 16x2 LCD, etc.
lcd.clear();

motor1.attach(8);
motor2.attach(9);

Serial.begin(9600); // Serielle Ausgabe beginnen mit 9600baud
Serial.println("DHT22 Serielle Ausgabe"); // Begrüßung beim Aufruf vom seriellen Monitor
dht22.begin();
}


void loop()
{
float t = dht22.readTemperature(); // Die Temperatur wird vom DHT22 ausgelesen, Wert in "t" schreiben
float h = dht22.readHumidity(); // Die Luftfeuchte wird vom DHT22 ausgelesen, Wert in "h" schreiben

Serial.print("Temperatur: "); // Ausgabe im Seriellen Monitor
Serial.print(t); // Ausgabe im Seriellen Monitor
Serial.print(" C\t"); // Ausgabe im Seriellen Monitor
Serial.print("Luftfeuchte: "); // Ausgabe im Seriellen Monitor
Serial.print(h); // Ausgabe im Seriellen Monitor
Serial.println(" %"); // Ausgabe im Seriellen Monitor


lcd.setCursor(0, 0); // Anfang auf Stelle 0, Zeile 0 setzen
lcd.print("Cafissimo-Wecker");
lcd.setCursor(0, 1); // Anfang auf Stelle 0, Zeile 0 setzen
lcd.print("1.0 Beta");
lcd.setCursor(0, 2); // Anfang auf Stelle 0, Zeile 0 setzen
lcd.print("Temp. :"); // Temp. : auf LCD ausgeben
lcd.setCursor(9, 2); // Anfang auf Stelle 9, Zeile 0 setzen
lcd.print(t); // Wert aus "t" ausgeben (Temperatur)
lcd.setCursor(15, 2); // Anfang auf Stelle 15, Zeile 0 setzen
lcd.print("C"); // C auf LCD ausgeben
lcd.setCursor(0, 3); // Anfang auf Stelle 0, Zeile 1 setzen
lcd.print("Luftf.:"); // Luft.: auf LCD ausgeben
lcd.setCursor(9, 3); // Anfang auf Stelle 9, Zeile 1 setzen
lcd.print(h); // Wert aus "h" ausgeben (Luftfeuchtigkeit)
lcd.setCursor(15, 3); // Anfang auf Stelle 15, Zeile 1 setzen
lcd.print("%"); // % auf LCD ausgeben

motor1.write(138);
delay (500) ;
motor1.write(57);
delay (90000) ;

motor2.write(177) ;
delay (500) ;
motor2.write(110);
delay (48000) ;

motor1.write(138);
delay (500) ;
motor1.write(57);


while(1);

}

Durch das while 1 am Ende erhalte ich nur eine Tasse Kaffee. Das ist auch so gewollt. Nur werden die Sensordaten darauf natürlich auch nicht mehr aktualisiert. Wie kann ich denn sagen, dass er die servosache nur einmal ausführen soll, jedoch ständig sensordaten auslesen soll?

Liebe Grüße,

Nico
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.09.2013, 17:04
Beitrag #5
RE: Der Cafissimo-Wecker
Cooles Projekt!

Ich hab mal die Stellen Deines Quelltextes ausgeblendet, die für die Lösung nicht so relevant sind. Im Sketch brachst Du sie dann aber schon. ;-)

Und weil ich Deine Hardware nicht habe, konnte ich es auch nicht testen. Deshalb: Ohne Garantie. Aber ich denke schon, dass es so funktioniert.

Code:
// viiiiel Quelltext ausgeblendet

int firstRun = 1;  // initial auf 1, beim nächsten Reset ist es auch wieder auf 1.

void loop()
{
  // wieder viel Quelltext ausgeblendet

  if (firstRun) { // (firstRun != 0)
    // Der Block wird nur noch beim ersten mal ausgefuehrt.

    motor1.write(138);
    delay (500) ;
    motor1.write(57);
    delay (90000) ;
  
    motor2.write(177) ;
    delay (500) ;
    motor2.write(110);
    delay (48000) ;
  
    motor1.write(138);
    delay (500) ;
    motor1.write(57);
    
    firstRun = 0; // Damit beim nächsten Aufruf von loop
                       // dieser Block ausgelassen wird.
  }  // Ende vom Block

  // while(1); // Das brauchst Du nun nicht mehr.
}

Wenn ich Dein Programm richtig verstanden habe, sollten die Sensordaten jetzt aktualisiert werden.

Nochmal: Cooles Projekt!

Gruesse

Steffen (a.k.a. AgileHardware)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.09.2013, 19:23
Beitrag #6
RE: Der Cafissimo-Wecker
Hallo zusammen,

@Agile Hardware:
vielen lieben Dank. Es funktioniert. Allerdings habe ich schon ein wenig weiter gesponnen und es ergeben sich einige neue Fragen. Das ist mein aktueller Code:

Zitat:#define trigPin 49
#define echoPin 48
#define DHTPIN 32
#define DHTTYPE DHT22 //DHT11, DHT21, DHT22

#include <LiquidCrystal.h>
#include <Servo.h>
#include "DHT.h"

DHT dht(DHTPIN, DHTTYPE);

LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
Servo motor1;
Servo motor2;
int backLight = 13;

int Relay1 = 45;
int Relay2 = 43;

int firstRun = 1; // initial auf 1, beim nächsten Reset ist es auch wieder auf 1.

void setup ()
{

Serial.begin (9600);
dht.begin();
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);

pinMode(backLight, OUTPUT);
digitalWrite(backLight, HIGH);

motor1.attach(8);
motor2.attach(9);

lcd.begin(20,4);
lcd.clear();

pinMode(Relay1, OUTPUT);

}

void loop()
{

digitalWrite(Relay1, HIGH);

float h = dht.readHumidity(); //Luftfeuchte auslesen
float t = dht.readTemperature(); //Temperatur auslesen

Serial.print("Luftfeuchte: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperatur: ");
Serial.print(t);
Serial.println(" C");

int duration, distance;
digitalWrite(trigPin, HIGH);
delayMicroseconds(1000);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;

Serial.print(distance);
Serial.println(" cm");
delay(500);

lcd.setCursor(0,3);
lcd.print (" ");

lcd.setCursor(0,0);
lcd.print("Cafissimo-Wecker 1.0");
lcd.setCursor(0,1);
lcd.print("Temp:");
lcd.setCursor(8,1);
lcd.print(t);
lcd.setCursor(15,1);
lcd.print("C");
lcd.setCursor(0,2);
lcd.print("r.F :");
lcd.setCursor(8,2);
lcd.print(h);
lcd.setCursor(15,2);
lcd.print("%");
lcd.setCursor(0,3);
lcd.print (" ");
lcd.setCursor(0,3);
lcd.print (distance);
lcd.setCursor(2,3);
lcd.print ("cm");

if (distance > 1)
{
if (distance < 7)
{
lcd.setCursor(6,3);
lcd.print (" ");
lcd.setCursor(7,3);
lcd.print ("BEREIT");
}

else
{
lcd.setCursor(0,3);
lcd.print (" ");
lcd.setCursor(0,3);
lcd.print ("TASSE UNTERSTELLEN!!");
{ goto ending;}
}
}

if (firstRun) { // (firstRun != 0)
// Der Block wird nur noch beim ersten mal ausgefuehrt.

motor1.write(138);
delay (500) ;
motor1.write(57);

lcd.setCursor(6,3);
lcd.print (" ");
lcd.setCursor(6,3);
lcd.print ("Aufheizen");

delay (90000) ;
motor2.write(177) ;
delay (500) ;
motor2.write(110);

lcd.setCursor(6,3);
lcd.print (" ");
lcd.setCursor(6,3);
lcd.print ("Bruehvorgang");

delay (48000) ;

lcd.setCursor(6,3);
lcd.print (" ");
lcd.setCursor(6,3);
lcd.print ("bitteschoen Smile");

digitalWrite(Relay1, LOW);
delay(1000);
digitalWrite(Relay1, HIGH);
delay(1000);
digitalWrite(Relay1, LOW);
delay(1000);
digitalWrite(Relay1, HIGH);
delay(1000);
digitalWrite(Relay1, LOW);
delay(1000);
digitalWrite(Relay1, HIGH);
delay(1000);
digitalWrite(Relay1, LOW);
delay(1000);
digitalWrite(Relay1, HIGH);

delay (2000);

motor1.write(138);
delay (500) ;
motor1.write(57);

ending:

firstRun = 0; // Damit beim nächsten Aufruf von loop
// dieser Block ausgelassen wird.
}
}

Was ich bisher hinbekommen habe:
- Wenn das Programm über die Arduino-Reset Taste neu geladen wird, dann wird die Maschine zuerst ein geschalten.
- Wenn sie auf Temperatur ist, wird der Brühvorgang durch den zweiten Servo eingeleitet.
- Nun wenn der Kaffee fertig ist, blinkt ein LED Streifen einige Male auf und die Maschine wird aus geschalten.
- Dank dir "AgileHardware" wird nur ein Kaffee gebrüht und darauf werden nur noch die Sensordaten ausgelesen.
- Ach ja: Die Außentemperatur und die Luftfeuchtigkeit werden dauernd auf dem Display angezeigt.

   
   

Was nun noch nicht funktioniert ist:

- Wenn keine Tasse darunter steht und der Servoteil bereits abgelaufen ist ist alles prima. nur sobald wieder eine Tasse darunter steht zucken die Servos alle 6-9 Sekunden. Das nervt auf Dauer nur ein wenig.
- Mein eigentlicher Plan ist es ja, dass jeden morgen pünktlich um 6.15Uhr ein Kaffee gemacht wird (nur unter der Woche) Dafür möchte ich gerne eine RTC benutzen und meinen Arduino somit als Zeitschaltuhr verwenden.
- Manchmal passiert es, dass sich die Servos auf einmal in die falsche Richtung bewegen. Das nächste Mal kann sich das auch schon wieder ändern.
- bewegen sich die Servos, verschwindet die Schrift auf dem lcd. Liegt das daran, dass der USB Anschluss einfach nur 500mAh durchlässt?


Liebe Grüße,

Nico
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.09.2013, 21:28
Beitrag #7
RE: Der Cafissimo-Wecker
(18.09.2013 19:23)NicoW schrieb:  - Wenn keine Tasse darunter steht und der Servoteil bereits abgelaufen ist ist alles prima. nur sobald wieder eine Tasse darunter steht zucken die Servos alle 6-9 Sekunden. Das nervt auf Dauer nur ein wenig.

Wenn die Servos weiter Signale empfangen, versuchen sie nachzuregeln. Aber nicht alle Signale und Servos sind da sehr genau. Probier mal, nach dem letzten Befehl an die Servos ein wenig zu warten (delay) damit der Servo seine Position anfahren kann. Und dann rufe detach() fuer beide Servos auf. Bei mir hat das mal geholfen. ;-)


(18.09.2013 19:23)NicoW schrieb:  - Manchmal passiert es, dass sich die Servos auf einmal in die falsche Richtung bewegen. Das nächste Mal kann sich das auch schon wieder ändern.

Hmm. Spannungsschwankungen?

(18.09.2013 19:23)NicoW schrieb:  - bewegen sich die Servos, verschwindet die Schrift auf dem lcd. Liegt das daran, dass der USB Anschluss einfach nur 500mAh durchlässt?

So ein Servo ist manchmal extrem stromhungrig. Ich hab mal einen gehabt, der mehr als 2 A gezogen hat. Aber wenn Deine Servos sooo durstig waeren, wuerde mehr ausfallen. ;-) Trotzdem, ein gut dimensioniertes Netzteil wird helfen.

Noch ein ganz anderer Tipp: Du solltest Deinen Code in Funktionen aufteilen. Man sagt, pro Funktion bis maximal einer Bildschirmseite.

Viel Erfolg.

Gruesse,

Steffen (a.k.a. AgileHardware)

simple is beautiful. ™
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.09.2013, 11:36
Beitrag #8
RE: Der Cafissimo-Wecker
Liebe Forengemeinde,

Nun bin ich dabei den Sketch in Funktionen zu unterteilen und habe meine Gerätschaft noch um einige Bauteile erweitert.

- Reset Taster an der Maschine
- Fotodiode auf Dampftaste. Diese gibt Bescheid sobald die Maschine aufgeheizt ist und die Taste somit aufleuchtet. (siehe Foto)
- Weitere zwei Servos an dem Radio nebenan, um diesen an bzw. wieder aus zu schalten.

   

   

Code:
#define trigPin 49
#define echoPin 48
#define DHTPIN 32    
#define DHTTYPE DHT22 //DHT11, DHT21, DHT22

#include <LiquidCrystal.h>
#include <Servo.h>
#include "DHT.h"
#include <DS1307RTC.h>
#include <Time.h>
#include <Wire.h>

DHT dht(DHTPIN, DHTTYPE);

LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

Servo motor1;
Servo motor2;
Servo motor3;
Servo motor4;

int backLight = 13;

int Relay1 = 45;
int Relay2 = 43;

int firstRun = 1;  // initial auf 1, beim nächsten Reset ist es auch wieder auf 1.


void setup ()
{
  
Serial.begin (9600);
while (!Serial) ; // wait for serial
delay(200);
Serial.println("DS1307RTC Read Test");
Serial.println("-------------------");
dht.begin();
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);

pinMode(backLight, OUTPUT);
digitalWrite(backLight, HIGH);

lcd.begin(20,4);            

pinMode(Relay1, OUTPUT);

}

void loop()
{

  digitalWrite(Relay1, HIGH);
  
  
//++++++++++++++++++++TIME++++++++++++++++++++++++++++
tmElements_t tm;

  if (RTC.read(tm)) {
    Serial.print("Ok, Time = ");
    print2digits(tm.Hour);
    Serial.write(':');
    print2digits(tm.Minute);
    Serial.write(':');
    print2digits(tm.Second);
    Serial.print(", Date (D/M/Y) = ");
    print2digits(tm.Day);
    Serial.write('/');
    print2digits(tm.Month);
    Serial.write('/');
    Serial.print(tmYearToCalendar(tm.Year));
    Serial.println();
  } else {
    if (RTC.chipPresent()) {
      Serial.println("The DS1307 is stopped.  Please run the SetTime");
      Serial.println("example to initialize the time and begin running.");
      Serial.println();
    } else {
      Serial.println("DS1307 read error!  Please check the circuitry.");
      Serial.println();
    }
    delay(9000);
  }
  delay(1000);
//++++++++++++++++++++TIME++++++++++++++++++++++++++++

  float h = dht.readHumidity();     //Luftfeuchte auslesen
  float t = dht.readTemperature();  //Temperatur auslesen
  
    Serial.print("Luftfeuchte: ");
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("Temperatur: ");
    Serial.print(t);
    Serial.println(" C");
  
  int duration, distance;
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(1000);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;

  Serial.print(distance);
  Serial.println(" cm");
  
fotosensorWert();
  
  lcd.setCursor(0,0);          
  lcd.print("Cafissimo-Wecker 1.0");    
  lcd.setCursor(0,1);          
  lcd.print("Temp:");
  lcd.setCursor(5,1);          
  lcd.print(t);
  lcd.setCursor(10,1);          
  lcd.print("C");
  lcd.setCursor(11,1);          
  lcd.print(" F:");
  lcd.setCursor(14,1);          
  lcd.print(h);
  lcd.setCursor(19,1);          
  lcd.print("%");
  lcd.setCursor(0,2);
  lcd.print (tm.Hour);  
  lcd.setCursor(2,2);
  lcd.print (":");
  lcd.setCursor(3,2);
  lcd.print (tm.Minute);
  lcd.setCursor(5,2);
  lcd.print ("h  / ");
  lcd.setCursor(10,2);
  lcd.print (tm.Day);
  lcd.setCursor(12,2);
  lcd.print (".");
  lcd.setCursor(13,2);
  lcd.print (tm.Month);
  lcd.setCursor(15,2);
  lcd.print (".");
  lcd.setCursor(16,2);
  lcd.print (tmYearToCalendar(tm.Year));
  lcd.setCursor(0,3);
  lcd.print ("                    ");
  lcd.setCursor(0,3);
  lcd.print (distance);
  lcd.setCursor (2,3);
  lcd.print ("cm");

if (distance > 1 && distance < 8)
  {
    lcd.setCursor(6,3);
    lcd.print ("            ");
    lcd.setCursor(7,3);
    lcd.print ("BEREIT");  
  }
  
  else
  {
    lcd.setCursor(0,3);
    lcd.print ("                    ");
    lcd.setCursor(0,3);
    lcd.print ("TASSE UNTERSTELLEN!!");
    { goto ending;}
  
  }


if (firstRun) { // (firstRun != 0)
    // Der Block wird nur noch beim ersten mal ausgefuehrt.
kaffeemachen();
    
musik_radio();
    
     ending:
    
firstRun = 0;

}

}
void kaffeemachen(){
   motor1.attach(8);
   motor2.attach(9);

ein_ausschalten();

      lcd.setCursor(6,3);
      lcd.print ("         ");
      lcd.setCursor(6,3);
      lcd.print ("Aufheizen");
      
     delay (90000) ;
    
bruehvorgang();
    
      lcd.setCursor(6,3);
      lcd.print ("         ");
      lcd.setCursor(6,3);  
      lcd.print ("Bruehvorgang");

     delay (48000) ;
    
      lcd.setCursor(6,3);
      lcd.print ("            ");
      lcd.setCursor(6,3);
      lcd.print ("bitteschoen :)");
      
      ledblink1();
          
ein_ausschalten();

      delay(1000);
    
     motor1.detach();
     motor2.detach();
}
void fotosensorWert(){
  int fotosensorWert = 0;
  fotosensorWert = analogRead(A0);
  Serial.println(fotosensorWert);
  delay (1000);
}
void print2digits(int number) {
  if (number >= 0 && number < 10) {
    Serial.write('0');
  }
  
  Serial.print(number);
}

void ein_ausschalten(){
     motor1.write(90);
     delay(500);
     motor1.write(165);
     delay(500);
     motor1.write(90);
     //81°
      
}
void bruehvorgang(){
     motor2.write(90);
     delay(500);
     motor2.write(140);
     delay(500);
     motor2.write(90);
     //67°
    
}
void ledblink1(){

for (int i=0; i<5 ; i++){
          digitalWrite(Relay1, LOW);
          delay(500);
          digitalWrite(Relay1, HIGH);          
          delay(500);
}
}
void musik_radio(){
     motor3.attach(6);
     motor4.attach(7);

     motor3.write(90);
     delay(250);
     motor3.write(70);
     delay(250);
     motor3.write(90);
     //20°
    
       delay(600000);
      
     motor4.write(90);
     delay(250);
     motor4.write(60);
     delay(250);
     motor4.write(90);
     delay(1000);
     //30°

     motor3.detach();
     motor4.detach();
}

Jetzt habe ich aber ein kleines Problemen... Sobald der Servo1 die Maschine anschaltet, wird der fotosensor nicht mehr abgefragt. Die Maschine kann im Moment also nicht auf die Werte reagieren. Der SerialMonitor verriet mir folgende Sensorwerte:

Maschine aus (Tasterlicht aus) : ca. 51
Maschine ein und aufgeheizt (Tasterlicht ein) : ca. 180

Im WWW fand ich bisher die interrupt(); Funktion habe diese jedoch noch nicht richtig verstanden. Wie würdet ihr denn vorgehen, damit die Fotosensorwerte sowie DHT22 Werte immer abgefragt und die Uhrzeit auch während des Programmlaufes aktualisiert wird?

Vielen lieben dank für eure Unterstützung Smile

Grüße,

Nico
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Arduino UNO Wecker Arduinonoob 7 4.082 08.01.2015 23:37
Letzter Beitrag: MaHa1976
  Wecker-Projekt mit UNO - Adressierung RTC (Tiny RTC Modul) Aurillium 0 3.918 09.11.2013 12:08
Letzter Beitrag: Aurillium

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste