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
Smile Motorsteuerung mit Taster Eggi123 11 543 26.02.2017 15:48
Letzter Beitrag: MicroBahner
  Arduino-UNO LED über Taster digital zum leuchten zu bringen IvKriz 9 432 18.02.2017 08:33
Letzter Beitrag: renid55
  Hilfe bei Taster huber5093 11 433 14.02.2017 19:26
Letzter Beitrag: Tommy56
  8 Taster an einem Pin Kitt 9 597 04.02.2017 18:51
Letzter Beitrag: ardu_arne
  Led Impuls beim Taster betätigen clemens5555 11 561 17.01.2017 20:00
Letzter Beitrag: renid55
  Über drei Taster zwei externe Timer steuern Sidamo 23 769 09.01.2017 20:12
Letzter Beitrag: Tommy56
  Led mit taster ausschalten Frankeg 17 916 07.01.2017 21:17
Letzter Beitrag: renid55
  aufeinander Aufbauende Lichtaktion mit einem Taster Colby 9 552 17.12.2016 13:30
Letzter Beitrag: Colby
  mehrere Taster entprellen Kitt 15 1.180 24.10.2016 21:17
Letzter Beitrag: georg01
  Taster für mehrere Funktionen matthias3579 5 622 16.08.2016 16:00
Letzter Beitrag: StephanBuerger

Gehe zu:


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