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:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino UNO Wecker
07.01.2015, 18:27
Beitrag #1
Arduino UNO Wecker
Hallo Leute,

erstmal einmal Danke das ich diesen Beitrag überhaupt liest Smile

Zu meinem Projekt.

Undzwar baue ich gerade einen Wecker, dieser zeigt über einen LCD Display die Uhrzeit, die Weckzeit, das Datum sowie die Raum Temperatur an.

Soweit läuft das Programm bzw der geschriebene Quellcode 1A.

Einstellbar is die uhrzeit über 2 Taster auf dem Board. Funktioniert auch Wink

Dies will ich aber auch mit der Weckzeit machen, jedoch bekomme ich das nicht hin ?! Sad

Also hier erstmal die Komponenten:

[Bild: 7lnsom3f.jpg]


Dies ist mein Quellcode:
______________________________________________________________
#include <SPI.h>

#include <Time.h>
#include <LiquidCrystal.h>
#include <TimeAlarms.h>
#define sensorexit 1 //AnalogerAusgang 1

int tempc = 0; // Temperatur Variable
int atemp[96]; // Array Temperatur
int amin[96];
int astunde[96];
int maxi = -100, mini = 100; // maximale und minimale Temperatur
int i;
float temperaturlcd;

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

int key ;

const int cycles =20;
const int DELAY =10;

int Stunde,Minute,Tag,Monat,Jahr;
int as,am;

byte pin_button1=6;
byte pin_button2=7;
byte pin_button3=8;
byte pin_button4=10;
unsigned long prevtime;


unsigned long previousMillis = 0; // speichert wie viele Sekunden seit derletzten Änderung vergangen sind
unsigned long interval = 900000; // Interval zwischen zwei Änderungen


/*/-----------------------------------------------------------/*/


void setup()
{

lcd.begin(16, 2);
Serial.begin(9600);
pinMode(pin_button1, INPUT);
pinMode(pin_button2, INPUT);
pinMode(pin_button3, INPUT);
pinMode(pin_button4, INPUT);
Uhr();
setTime(Stunde,Minute,0,Tag,Monat,Jahr);
Alarm.alarmRepeat(as,am,0,TonAlarm);
}

void loop()
{
Temperatur();
Zeitstellen();
AnzeigeUhr();
serialAusgabe();
AlarmAnzeige();
Alarm.delay(1000);

}


/*---------------------------------------------------------------*/
/*---------------------------------------------------------------*/
void Uhr() {

Stunde=18;
Minute=32;
Tag=6;
Monat=1;
Jahr=15;

as=18; //AlarmStunde
am=33; //AlarmMinute

}
/*---------------------------------------------------------------*/
/*---------------------------------------------------------------*/



void AlarmAnzeige() {

lcd.setCursor(9,0);
lcd.print("A:");
if(as < 10)
lcd.print('0');
lcd.print(as);
lcd.print(":");
if(am < 10)
lcd.print('0');
lcd.print(am);

}


void Zeitstellen() {

prevtime= now();
while(prevtime==now())
{
if (checkSetTime())
prevtime=now();
}

}


boolean checkSetTime() {

int step;
boolean isTimeAdjusted=false;
step=1;
while(digitalRead(pin_button1)==HIGH)
{
adjustTime(step);
isTimeAdjusted=true;
step=step+1;
AnzeigeUhr();
delay(100);
}
step=-1;
while(digitalRead(pin_button2)==HIGH)
{
adjustTime(step);
isTimeAdjusted=true;
step=step-1;
AnzeigeUhr();
delay(100);
}
return isTimeAdjusted;
}




void AnzeigeUhr() {

lcd.setCursor(0,0);
printnull(hour());
lcd.print(":");
printnull(minute());
lcd.print("Uhr");
lcd.setCursor(0,1);
printnull(day());
lcd.print(".");
printnull(month());
lcd.print(".");
lcd.print(year());

}

void printnull(int d) {


if(d < 10)
lcd.print('0');
lcd.print(d);

}



void Temperatur() {

lcd.setCursor(11,1);

float resultTemp=0.0;
for (int i = 0; i<cycles;i++){
int analogValue = analogRead(sensorexit);
float temperature = (5.0 * 100.0 * analogValue) / 1024;
resultTemp += temperature;
delay(DELAY);
}
resultTemp /= cycles;
lcd.print(resultTemp,1);
lcd.print("C");


if (resultTemp > maxi) {
maxi = tempc; } // maximale Temperatur

if (resultTemp < mini) {
mini = tempc; } // minimnale Temperatur


TempAuswertung();


}




void TonAlarm() {
noTone(9); // schalten Ton ab
tone(9, 100, 100); // geben Ton 100 Hz, Dauer 100 ms an Pin 9 aus
delay(500); // warten 500 ms
noTone(9); // schalten Ton ab
tone(9, 500, 500); // geben Ton 500 Hz, Dauer 500 ms an Pin 9 aus
delay(500); // 500 ms
noTone(9); // schalten Ton ab
tone(9, 1000, 1000); // geben Ton 1000 Hz, Dauer 1 s an Pin 9 aus
delay(500); // 500 ms
noTone(9); // schalten Ton ab
tone(9, 2000, 1500); // geben Ton 2000 Hz, Dauer 1,5 s an Pin 9 aus
delay(500); // 500 ms
noTone(9); // schalten Ton ab
tone(9, 1500, 1000); // geben Ton 1050 Hz, Dauer 1 s an Pin 9 aus
delay(500); // 500 ms
noTone(9); // schalten Ton ab
tone(9, 1000, 2000); // geben Ton 1000 Hz, Dauer 2 s an Pin 9 aus
delay(500); // 500 ms


}
void TempAuswertung() {

if (millis() - previousMillis > interval) {
previousMillis = millis(); // aktuelle Zeit abspeichern


i++;
atemp[i] = ( 5.0 * analogRead(sensorexit) * 100.0) / 1024.0;
amin[i]= (minute());
astunde[i]= (hour());

if (i>95)
i=0;

}
}


void serialAusgabe() {

key=Serial.read();

if (key=='q') {
int z;
for(z=0;z<96;z=z+1) {
Serial.print(atemp[z]);
Serial.print("°C");
printnullserial(astunde[z]);
Serial.print(":");
printnullserial(amin[z]);
Serial.println("Uhr");
}
Serial.print(maxi);
Serial.print("°C Maxi, ");
Serial.print(mini);
Serial.print("°C Mini");

}
}


void printnullserial(int e) {


if(e < 10)
Serial.print('0');
Serial.print(e);

}
_____________________________________________________________




Wäre es möglich mir dabei zu helfen?

Habe bereits die pins zum verstellen der Weckzeit deklariert.

Jedoch sobald ich ein Code zum einstellen Weckzeit schreiben will, kommt mir der Code zum einstellen der Uhrzeit in die Quere Big Grin

Danke euch für eure Mühe Smile

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.01.2015, 18:33
Beitrag #2
RE: Arduino UNO Wecker
Hi,
vielleicht wäre es hilfreich, wenn Du auch Deine Versuche zum Stellen der Weckzeit hier einstellen könntest.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.01.2015, 18:59
Beitrag #3
RE: Arduino UNO Wecker
Ok hier mein Ansatz, Weckerstellten() hab ich dann oben noch deklariert Wink




void Weckerstellen() { // Momentane angezeigte Zeit wird ermittelt bzw. gecheckt

prevtime= now();
while(prevtime==now())
{
if (checkAlarm.alarmRepeat())
prevtime=now();
}

}


boolean checkAlarm.alarmRepeat() {

int step;
boolean isTimeAdjusted=false;
step=1;
while(digitalRead(pin_button3)==HIGH) // wenn pin 8 gedrückt wird, dann wird +1min angezeigt
{
adjustTime(step);
isTimeAdjusted=true;
step=step+1;
AnzeigeUhr();
delay(100);
}
step=-1;
while(digitalRead(pin_button4)==HIGH) // wenn pin 10 gedrückt wird, dann wird -1min angezeigt
{
adjustTime(step);
isTimeAdjusted=true;
step=step-1;
Alarmanzeige();
delay(100);
}
return isTimeAdjusted;
}




Danke für die schnelle Antwort Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.01.2015, 19:05
Beitrag #4
RE: Arduino UNO Wecker
Hi,
adjustTime ist doch die Funktion, die die Uhr stellt, oder? Du brauchst da eine eigene, die die Alarmzeit verstellt. Außerdem benutzt Du im "+"-Ast AnzeigeUhr statt Alarmanzeige.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.01.2015, 19:11 (Dieser Beitrag wurde zuletzt bearbeitet: 07.01.2015 19:36 von Arduinonoob.)
Beitrag #5
RE: Arduino UNO Wecker
stimmt...

wie bekomme ich den eine eigene hin Beispiel : alarmTime() ohne das die sich dann wie die Uhrzeit verstellt?

stehe irgendwie völlig auf dem Schlauch Big Grin

mit dem AnzeigeUhr hast recht....

wenn ich in der jeweiligen Library rein schaue und nach diesen Keywords suche erscheint ja wie bereits verwendet bei Time.h diese Keywords setTime....

bei der Library von TimeAlarms finde ich diese Keywords jedoch nicht Sad
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.01.2015, 19:37
Beitrag #6
RE: Arduino UNO Wecker
Hi,
Du hast das Programm nicht selbst geschrieben, oder? Ansonsten wäre das kein Problem für Dich, denke ich...
Du musst halt as und am entsprechend ändern...
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.01.2015, 19:47
Beitrag #7
RE: Arduino UNO Wecker
richtig geraten Wink

sind eine Gruppe aus zwei Leuten und haben mit Hilfe unseres Professors dieses Programm geschrieben.... können es aber nun nicht endgültig abschließen Sad

An sich verstehe ich es, aber raffe es jetzt aber gerade nicht Big Grin

Danke dir schon einmal für die schnelle und nette Hilfe Smile bin sehr dankbar drüber Smile

Inwiefern soll ich as und am ändern? muss ich das nun im kompletten Quellcode anpassen oder nur in dem Auszug von Weckerstellen?

Ich hoffe ich komme nicht zu doof rüber Sad Mathe liegt mir mehr als IT Sad
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.01.2015, 23:37
Beitrag #8
RE: Arduino UNO Wecker
Nachdem ich mir einen Wecker gebaut habe, allerdings als Anzeige einen Neupixel- Ring nutze traue ich mir das prinzipiell zu Euch zu helfen... aber ich bin selbst noch "Anfänger" und müßte etwas damit spielen können...

Aus welcher Region seid ihr denn?
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 Neuling: Zugeklappten Laptop mit Arduino aufwecken + Kiste aufklappen? Ikearegal 2 2.514 02.02.2014 07:59
Letzter Beitrag: Ikearegal
  Wecker-Projekt mit UNO - Adressierung RTC (Tiny RTC Modul) Aurillium 0 3.922 09.11.2013 12:08
Letzter Beitrag: Aurillium
  Der Cafissimo-Wecker NicoW 10 12.405 27.09.2013 17:30
Letzter Beitrag: NicoW

Gehe zu:


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