#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 6 // Hier wird angegeben, an welchem digitalen Pin die WS2812 LEDs bzw. NeoPixel angeschlossen sind
#define NUMPIXELS 60 // Hier wird die Anzahl der angeschlossenen WS2812 LEDs bzw. NeoPixel angegeben
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
#include "Wire.h"
#define DS3231_ADDRESSE 0x68
void setup() {
Wire.begin();
Serial.begin(38400);
pixels.begin();
// aktuelle Zeit sek min std wt tag mon jahr
einstellenDS3231zeit(04, 36, 10, 3, 15, 10, 20);
}
void loop(byte sekunde, byte minute, byte stunde, byte wochentag, byte tag, byte monat, byte jahr) {
zeigeZeit(); // Zeit ausgeben
delay(1000); // jede Sekunde
if (digitalRead(sekunde)==10) {
pixels.setPixelColor(40, pixels.Color(155,0,155));
Serial.println("HALLO");
} else {
pixels.setPixelColor(40, pixels.Color(0,0,0));
}
}
void einstellenDS3231zeit(byte sekunde, byte minute, byte stunde, byte wochentag, byte tag, byte monat, byte jahr) {
// Datum und Uhrzeit einstellen
Wire.beginTransmission(DS3231_ADDRESSE);
Wire.write(0);
Wire.write(decToBcd(sekunde)); // Sekunden einstellen
Wire.write(decToBcd(minute)); // Minuten einstellen
Wire.write(decToBcd(stunde));
/*Wire.write(decToBcd(wochentag)); // 1=Sonntag ... 7=Samstag
Wire.write(decToBcd(tag));
Wire.write(decToBcd(monat));
Wire.write(decToBcd(jahr)); // 0...99 */
Wire.endTransmission();
}
void leseDS3231zeit(byte *sekunde, byte *minute,byte *stunde, byte *wochentag, byte *tag, byte *monat, byte *jahr) {
Wire.beginTransmission(DS3231_ADDRESSE);
Wire.write(0); // DS3231 Register zu 00h
Wire.endTransmission();
Wire.requestFrom(DS3231_ADDRESSE, 7); // 7 Byte Daten vom DS3231 holen
*sekunde = bcdToDec(Wire.read() & 0x7f);
*minute = bcdToDec(Wire.read());
*stunde = bcdToDec(Wire.read() & 0x3f);
/**wochentag = bcdToDec(Wire.read());
*tag = bcdToDec(Wire.read());
*monat = bcdToDec(Wire.read());
*jahr = bcdToDec(Wire.read()); */
}
void zeigeZeit(){
byte sekunde, minute, stunde, wochentag, tag, monat, jahr;
leseDS3231zeit(&sekunde, &minute, &stunde, &wochentag, &tag, &monat, &jahr); // Daten vom DS3231 holen
/*if (tag < 10) { Serial.print("0");}
Serial.print(tag); // ausgeben T.M.J H:M:S
Serial.print(":");
if (monat < 10) { Serial.print("0");}
Serial.print(monat);
Serial.print(":20");
Serial.print(jahr);
Serial.print(" ");
*/if (stunde < 10) { Serial.print("0");}
Serial.print(stunde, DEC); // byte in Dezimal zur Ausgabe
Serial.print(":");
if (minute < 10) { Serial.print("0");}
Serial.print(minute, DEC);
Serial.print(":");
if (sekunde < 10) { Serial.print("0"); }
Serial.println(sekunde, DEC);
}
byte decToBcd(byte val) {
// Dezimal Zahl zu binary coded decimal (BCD) umwandeln
return((val/10*16) + (val%10));
}
byte bcdToDec(byte val) {
// BCD (binary coded decimal) in Dezimal Zahl umwandeln
return((val/16*10) + (val%16));
}
Fehler code:
C:\Users\mka-mzi\AppData\Local\Temp\ccxAenkq.ltrans0.ltrans.o: In function `main':
C:\Users\mka-mzi\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.3\cores\arduino/main.cpp:46: undefined reference to `loop'
collect2.exe: error: ld returned 1 exit status
exit status 1
Error compiling for board Arduino Uno.
Hello,
I have a problem with my code im trying to Show a led if the RTC seconds count is at 10.
The problem is:
"Error when compiling for the Arduino / Genuino Uno board."
I now there is a Libary which is not includet but i cant find the download for it but the samples form NEOPIXEL
include this and it worked but was not instalt.
Does someone have a same/similar problem and can help me
Macrux