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
RTC stellen per Taster
19.12.2014, 15:57 (Dieser Beitrag wurde zuletzt bearbeitet: 19.12.2014 15:57 von Arduinonoob.)
Beitrag #17
RE: RTC stellen per Taster
Hi,
hab so ein ähnliches Problem wie du und hoffe du kannst mir vielleicht weiterhelfen bzw. auch jemand anders Smile

Undzwar bin ich dabei einen Wecker zu bauen, wo ich über den Quellcode sowie über taster die Uhrzeit, Datum und Weckzeiteinstellen will.

Über den Quellcode die Sachen einstellen hab ich soweit programmiert sowie auch das einstellen der Uhrzeit über Taster.

Jedoch bekomme ich es einfach nicht hin, über Taster das Datum sowie Weckzeit einzustellen.

Wäre es möglich mir den Quellcode zu ändern? Sitze seit geraumer Zeit an dem Arduino Projekt und komme einfach nicht weiter Sad

mein Quellcode ist folgender:

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

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

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


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;
unsigned long prevtime;


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


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


void setup()
{

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

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

// delay(1000);
}
/*---------------------------------------------------------------*/
/*---------------------------------------------------------------*/
void Uhr() {
Stunde=14;
Minute=15;
Tag=19;
Monat=12;
Jahr=14;
as=16; //AlarmStunde
am=30; //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);
// Digitalanzeige der Zeit
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");

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
for(i = 0; i <= 90; i++) // 90 Temperaturen werden berechnet, alle 10 Sekunden
{
atemp[i] = ( 5.0 * analogRead(sensorexit) * 100.0) / 1024.0;
tempc = tempc + atemp[i];
delay(10);
}

tempc = tempc/90.0; // Mittelwert wird berechnet
if (tempc > maxi) {
maxi = tempc;
} // maximale Temperatur

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

Serial.print(tempc,DEC);
Serial.print(" Celsius, ");
Serial.print(maxi,DEC);
Serial.print(" Max, ");
Serial.print(mini,DEC);
Serial.print(" Min");
Serial.print(" -- ");
printnullserial(hour());
Serial.print(":");
printnullserial(minute());
Serial.print(" Uhr, ");
printnullserial(day());
Serial.print(".");
printnullserial(month());
Serial.print(".");
Serial.println(year());
tempc = 0;
}
}

void printnullserial(int e){

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

__________________________________________________________

Uhrzeit stelle ich über Taster ein die an Pin 6 und 7 programmiert sind.

Meine Vorstellung für die restlichen Einstellungen:
Datum: Pin 8
Weckzeit: Pin 2


Ich bedanke mich schon mal für eure Hilfe Smile

[Bild: 9ekxhd3e.jpg]
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.12.2014, 08:26 (Dieser Beitrag wurde zuletzt bearbeitet: 28.12.2014 08:58 von aoLaopsa.)
Beitrag #18
RE: RTC stellen per Taster
(15.08.2014 16:04)Sascha schrieb:  Danke, also ich habe die Uhrzeit auf dem SerialMonitor und auf dem lcd, soweit passt alles, nur das anpassen geht nicht.
Ich habe es gerade so versucht
Setup().......
rtc.adjust(DateTime(2014, 1, 21, x, y, 0));
..............
void Loop()..........
buttonState = digitalRead(t1);
if (buttonState == HIGH)
{
buttonStateHIGH = 1;
}
if (buttonState == LOW && buttonStateHIGH == 1)


galaxy tab 4 10.1 hülle


{
x++;
buttonStateHIGH = 0;

}
...........
den kompletten Code poste ich lieber nicht, da dort auch noch die Zeitschaltuhr, Temperatur, Luftfeucht usw. drin sind und der ca. 14 Seiten hat.

Problem hierbei ist, dass ich zwar die Zeit per Taster stellen kann, aber die Uhr selbst nicht weiter läuft.
wenn ich damit arbeite und selbst welche erstelle, werde ich es erst richtig verstehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  mehrere Taster entprellen Kitt 15 504 24.10.2016 21:17
Letzter Beitrag: georg01
  Taster für mehrere Funktionen matthias3579 5 345 16.08.2016 16:00
Letzter Beitrag: StephanBuerger
  Steuern von 4 Servo mittels eines Taster und eines Potis Jackie09 17 751 16.07.2016 11:43
Letzter Beitrag: Binatone
  Serial.printeln, Stellen verschwinden Mathias 6 255 27.05.2016 17:44
Letzter Beitrag: Mathias
  Schwellwert mit Taster ändern malsehen 16 1.410 12.04.2016 20:11
Letzter Beitrag: malsehen
  3 Schrittmotoren, 2 LED's 1 Taster cichla 0 389 31.03.2016 15:21
Letzter Beitrag: cichla
  Arduino Alarmanlage mit Taster erweitern Vengance 0 516 22.03.2016 17:54
Letzter Beitrag: Vengance
  Druckanzeige hat zu viele Stellen Rob-LE 2 364 19.03.2016 08:56
Letzter Beitrag: Rob-LE
  Taster abfragen Rudi 3 688 25.02.2016 14:03
Letzter Beitrag: hotsystems
  digitalOutputpin mit Taster an- oder ausschalten Raptor 2 565 26.12.2015 20:59
Letzter Beitrag: torsten_156

Gehe zu:


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