Uhr mal anders...

Themabewertung:
  • 1 Bewertung(en) - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
tesacrep
Administrator
*******

Beiträge: 500
Registriert seit: Dec 2013
Bewertung: 2
#11
09.06.2014, 22:13

Hab ich eben gemacht. 3.0V Ich dachte eh die Uhr ist digital, da sollte sowas ja nicht vorkommen. Ich hab jetzt mal die selbe wie du hast gekauft.
Zitieren
wedelchen
Junior Member
**

Beiträge: 39
Registriert seit: Jun 2014
Bewertung: 0
#12
13.06.2014, 18:18

OK, bin gespannt. Ansonsten schicke ich dir mal meinen Sketch :-)
Zitieren
tesacrep
Administrator
*******

Beiträge: 500
Registriert seit: Dec 2013
Bewertung: 2
#13
15.06.2014, 09:47

Ich glaube nicht das es am Sketch liegt, die Uhr hat ja ihren eigen IC und wird nicht großartig umgerechnet.
Ich bin der Meinung wenn man Internet ein wenig liest das diese Uhr einfach minderwertig ist. Leider kommt der ersatz dafür auch aus China.

Bin ja mal gespannt Smile
Zitieren
Titanes
Member
***

Beiträge: 69
Registriert seit: Aug 2015
Bewertung: 0
#14
23.08.2015, 19:54

Hallo, hatte eine ähnliche Idee. Ich will die Abfuhrtage allerdings nur mit LEDs anzeigen lassen. Hab allerdings ein wenig Probleme mit der Programmumsetztung, da ich noch ein Neuling im Programmieren bin. Hab hier mal Deinen von mir geänderten Code. Beim Kompilieren wird kein Fehler angezeigt. Aber im seriellen Monitor und an den LEDs tut sich nichts.Sad Wäre super nett, wenn Du mal drüber schauen könntest oder mir mal Deinen kompletten Code schicken könnntest.

Gruß Titanes




   



 
// Content
#include <Wire.h> // For some strange reasons, Wire.h must be included here
#include <DS1307new.h>
// Tage Gelbe Tonne, Diff 01.01.2000-> Abfuhrdatum (Übernahme aus Excelsheet)
#define numge 5
 
int ge[numge]={5710, 5738, 5766, 5794, 5822};
 
// Tage Papier Tonne, Diff 01.01.2000-> Abfuhrdatum (Übernahme aus Excelsheet)
#define numbp 5
int pa[numbp]={5723, 5751, 5779, 5807, 5834};
 
// Tage Bio Tonne, Diff 01.01.2000-> Abfuhrdatum (Übernahme aus Excelsheet)
#define numbi 16
int bi[numbi]={5714, 5718, 5725, 5732, 5739, 5746, 5753, 5760, 5767, 5774, 5781, 5788, 5795, 5809, 5823, 5836};
 
// Tage Restmüll Tonne, Diff 01.01.2000-> Abfuhrdatum (Übernahme aus Excelsheet)
#define numre 9
int re[numre]={5718, 5732, 5746, 5760, 5774, 5788, 5802, 5816, 5830};
 
// kein Datenbestand
// Datenbestand bis 31.12.2015
int lastday=5836;
 
 
int abfuhr;
int abfuhrn;
//int errorstatus;
int vtag;
int arttonne;
int arttonnen;
int tonnekeine;
int tonnegelb;
int tonnepapier;
int tonnebio;
int tonnerest;
int tonnefehler;
 
 
 
int led1 = 12; //rot Restmüll
int led2 = 11; //grün Bio
int led3 = 4; //blau Papier
int led4 = 5; //gelb gelber Sack
 
 
 
void setup()
{

pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
 
Serial.begin(9600);
}
 
 
void loop() {
 
RTC.getTime();
 
abfuhr = RTC.cdn, DEC; // Tage seit 01.01.2000
abfuhr=abfuhr+1; // Abfuhr morgen ?
abfuhrn=abfuhr+1; // Abfuhr übermorgen ?
vtag=RTC.day;
 
 
//if(abfuhr>lastday) // Ende Datenbestand erreicht ?
//{

//errorstatus=1;
 
//}
if(vtag!=RTC.day) // neuer Tag ? Berrechnung Status Tonne
{
arttonne=0;
arttonnen=0;
for (int x = 0; x < numge; x = x + 1)
{
if (ge[x] == abfuhr)
{
arttonne+=1;
Serial.println("found Gelbe Tonne");
delay(2000);
 
}
if (ge[x] == abfuhrn)
{
arttonnen+=1;
Serial.println("Gelbe Tonne in 2 Tagen");
delay(2000);
digitalWrite(led4,HIGH);
}
 
for (int x = 0; x < numbp; x = x + 1)
{
if (pa[x] == abfuhr)
{
arttonne+=2;
Serial.println("found Papier Tonne");
}
if (pa[x] == abfuhrn)
{
arttonnen+=2;
Serial.println("Papier Tonne in 2 Tagen");
digitalWrite(led3,HIGH);
}
 
for (int x = 0; x < numbi; x = x + 1)
{
if (bi[x] == abfuhr)
{
arttonne+=4;
Serial.print("found Biotonne");
}
if (bi[x] == abfuhrn)
{
arttonnen+=4;
Serial.print("Biotonne in 2 Tagen");
digitalWrite(led2,HIGH);
}
 
for (int x = 0; x < numre; x = x + 1)
{
if (re[x] == abfuhr)
{
arttonne+=8;
Serial.println("found Restmuelltonne");
}
if (re[x] == abfuhrn)
 
{
arttonnen+=8;
Serial.println("Restmuelltonne in 2 Tagen");
digitalWrite(led1,HIGH);
}}}}}}}
 
 
Zitieren
Unilein
Fachgebiet Rauchentwicklung
*******

Beiträge: 726
Registriert seit: Apr 2014
Bewertung: 5
#15
23.08.2015, 20:11

Hi,

so auf den ersten Blick sehe ich nichts. Habe aber auch nur mal kurz drüber geschaut.
Hast Du mal geschaut, ob das Objekt "RTC" in den jeweiligen variablen den richtigen Wert enthält?
Vielleicht mal ein paar Infos auf Serial ausgeben. Gelangt Dein Sketch überhaupt durch die IF-Abfragen? Stimmen die Bedingungen? Wenn ich vor solchen Problemen stehe, mache ich das auch so (außer wenn ich in Assembler programmiere.... Da hilft dann nur stundenlanges suchen *g* ).

Ansonsten müsste ich den Sketch selbst mal kompilieren und testen.

Gruß
Uni
-----

Klopapier beidseitig verwenden und der Erfolg liegt auf der Hand!
Zitieren
Titanes
Member
***

Beiträge: 69
Registriert seit: Aug 2015
Bewertung: 0
#16
23.08.2015, 23:03

Hallo, danke schon mal für Deine Antwort. Hab abfuhr, abfuhrn und vtag mal über den seriellen Monitor überprüft. Die Werte waren alle ok. Heute hätte also Bio angezeigt werden müssen.

Gruß Titanes
Zitieren
Unilein
Fachgebiet Rauchentwicklung
*******

Beiträge: 726
Registriert seit: Apr 2014
Bewertung: 5
#17
24.08.2015, 14:19

Zitat:Hallo, danke schon mal für Deine Antwort. Hab abfuhr, abfuhrn und vtag mal über den seriellen Monitor überprüft. Die Werte waren alle ok. Heute hätte also Bio angezeigt werden müssen.

Wie schaut es mit den Variablen numge, umbp, umbi und numre aus? Haben die den korrekten Wert? Oder sind die evtl 0?

Ich bin nicht sicher, ob die Definition mit #define das erwartete Ergebnis liefert.

Ich würde Dir gerne schneller helfen, aber ich habe gerade keinen Arduino zur Hand, mit dem ich den Kram mal eben testen könnte.

Gruß
Uni
-----

Klopapier beidseitig verwenden und der Erfolg liegt auf der Hand!
Zitieren
Titanes
Member
***

Beiträge: 69
Registriert seit: Aug 2015
Bewertung: 0
#18
25.08.2015, 10:59

Hi, bei numge u.s.w. wird der Wert der oben in der Definition steht auch angezeigt. Mir ist aber gerade aufgefallen, daß arttonne=0; u.s.w wohl nur für den TFT gebraucht wird. Werd mich heute Abend nochmal dran setzen.

Gruß Titanes
Zitieren
wedelchen
Junior Member
**

Beiträge: 39
Registriert seit: Jun 2014
Bewertung: 0
#19
28.08.2015, 15:54

Hey,

ich schau mir deinen Code mal an...

Du setzt die Variable

Code:
vtag=RTC.day;

permanent in deiner Loopschleife.
Somit hat sie als Inhalt IMMER den Wert vom aktuellen Tag.

Die Bedingung für die Abfrage

Code:
if(vtag!=RTC.day)

wird demnach niemals eintreffen !!

Setzte die Variable mal am Ende innerhalb der Abfrage.

Grundidee zur Variable Arttone:

Liegt keine Abfuhrtermin vor, ist sie 0, es wird also nichts angezeigt.

Hat sie den Inhalt 1,2,4 oder 8 liegt ein Termin vor.
Hat sie einen anderen Wert, habe ich einen Fehler in der Datenbank
(Ich habe keinen Tag, wo mehr als eine Tonne abgeholt wird).

Werden u.U. mehrere Tonnen am gleichen Tag abgeholt, muss
die Bedingung entsprechend geändert werden.

Da du die Ausgabe per LED machst, kannst du dir das Setzen von Arttonne eigentlich sparen.

Gruß...

Nachtrag:

Zu Beginn der Abfrage sollte du deine LEDs alle ausschalten, sonst leuchten sie irgendwann alle dauerhaft auf Cool
Zitieren
Titanes
Member
***

Beiträge: 69
Registriert seit: Aug 2015
Bewertung: 0
#20
31.08.2015, 23:52

Hi, danke für die Info, hat jetzt geklappt. LED leuchtet Big Grin und wird bestimmt um 0 Uhr aus gehen. Falls nicht melde ich mich nochmal.

Gruß Titanes
Zitieren


Gehe zu:


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