Wir sind neugierig. ....
Funktioniert's jetzt?
habe versucht mit zu experimentieren bin wohl doch etwas zu unerfahren damit könnte sein das das einfach zu groß für mich ist
Die Zahlen ändern sich wenn ich damit zu Gange gehe .
Weiss man eigentlich wie der Binärcode sich zu den Segment verhält
ich meine wenn ich jetzt die Segment 1 -7 änder will welche der Zeilen dafür verantwortlich ist ich sind vielleicht für euch dumme fragen würde es aber gerne verstehen .
0 und 1 ist ja nix anderes wie an und aus
ich werde verrrückt es geht ihr seit der hammer
ich zeig euch den code was ich gemacht habe
//RTC libraries
#include <Wire.h>
#include <Adafruit_NeoPixel.h>
#include "DS3231.h"
//WS2812B libraries
#ifdef __AVR__
#include <avr/power.h>
#endif
/**************RGB strip Definitions**************/
// Define pins for led strip
#define PIN 9
#define PINBLINK 6
// Define pixels in the strip
#define NUMPIXELS 56
#define NUMPIXELS3 2
//Setup led strips
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel blinks = Adafruit_NeoPixel(NUMPIXELS3, PINBLINK, NEO_GRB + NEO_KHZ800);
/**************RTC Definitions**************/
RTClib rtc;
/*******Control states for the clock********/
int delayval = 1000;
int hourDigit1=0;
int hourDigit2=0;
int miniteDigit1=0;
int miniteDigit2=0;
int blinkState=0;
/////*Globals*/////
#define SEGMENT_SIZE 14
#define TOTAL_SEGMENTS 4
/////*Number templates*/////
//This define a template for number inside a segment according to the wiring of the project,
//1 represent the led is on and should be colored
//0 represent that is should be off
//2 leds per segment, 14 leds per number
//Mask for right to left numbers
unsigned int rgbColourInv[11][14]={
{1,1, 1,1, 1,1, 0,0, 1,1, 1,1, 1,1}, //0
{0,0, 0,0, 1,1, 0,0, 0,0, 0,0, 1,1}, //1
{0,0, 1,1, 1,1, 1,1, 1,1, 1,1, 0,0}, //2
{0,0, 1,1, 1,1, 1,1, 0,0, 1,1, 1,1}, //3
{1,1, 0,0, 1,1, 1,1, 0,0, 0,0, 1,1}, //4
{1,1, 1,1, 0,0, 1,1, 0,0, 1,1, 1,1}, //5
{1,1, 1,1, 0,0, 1,1, 1,1, 1,1, 1,1}, //6
{0,0, 1,1, 1,1, 0,0, 0,0, 0,0, 1,1}, //7
{1,1, 1,1, 1,1, 1,1, 1,1, 1,1, 1,1}, //8
{1,1, 1,1, 1,1, 1,1, 0,0, 1,1, 1,1}, //9
{0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, //nil
};
//Mask for left to right numbers
unsigned int rgbColour[11][14]={
{1,1, 1,1, 1,1, 0,0, 1,1, 1,1, 1,1}, //0
{0,0, 0,0, 1,1, 0,0, 0,0, 0,0, 1,1}, //1
{0,0, 1,1, 1,1, 1,1, 1,1, 1,1, 0,0}, //2
{0,0, 1,1, 1,1, 1,1, 0,0, 1,1, 1,1}, //3
{1,1, 0,0, 1,1, 1,1, 0,0, 0,0, 1,1}, //4
{1,1, 1,1, 0,0, 1,1, 0,0, 1,1, 1,1}, //5
{1,1, 1,1, 0,0, 1,1, 1,1, 1,1, 1,1}, //6
{0,0, 1,1, 1,1, 0,0, 0,0, 0,0, 1,1}, //7
{1,1, 1,1, 1,1, 1,1, 1,1, 1,1, 1,1}, //8
{1,1, 1,1, 1,1, 1,1, 0,0, 1,1, 1,1}, //9
{0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, //nil
};
//Creates a RGB color schedule by hourR
unsigned int colorSchedule[24][3]= {
{40,0,0}, //00
{40,0,0}, //01
{40,0,0}, //02
{40,0,0}, //03
{40,0,0}, //04
{40,0,0}, //05
{180,0,0}, //06
{180,0,0}, //07
{160,20,0}, //08
{140,40,0}, //09
{120,60,0}, //10
{100,80,0}, //11
{80,100,0}, //12
{60,120,0}, //13
{40,140,0}, //14
{20,160,0}, //15
{0,180,0}, //16
{0,160,20}, //17
{0,140,40}, //18
{0,120,60}, //19
{0,100,80}, //20
{0,80,100}, //21
{40,0,0}, //22
{40,0,0}, //23
};
int currColor[3]= {0,0,160};
/////*-------*/////
void setup() {
pixels.begin(); // This initializes the NeoPixel library.
blinks.begin(); // This initializes the NeoPixel library.
Serial.begin(9600);
delay(1000);
Wire.begin();
}
//Set the number's color for a given segment
void setNumber(int number, int segment, int r,int g,int b)
{
//Segment are offsets of 14
int offset = SEGMENT_SIZE * segment;
if(segment < TOTAL_SEGMENTS)
{
for (int i = 0 ; i < SEGMENT_SIZE; i++)
{
if( rgbColour[number][i] == 0)
{
pixels.setPixelColor(i + offset, pixels.Color(0,0,0));
}else{
pixels.setPixelColor(i + offset, pixels.Color(r,g,b));
}
}
}
}
//Set the blinking dots color
void setBlink(int r,int g,int b)
{
blinks.setPixelColor(0, pixels.Color(r,g,b));
blinks.setPixelColor(1, pixels.Color(r,g,b));
}
void loop() {
DateTime now = rtc.now();
hourDigit1=now.hour()/10;
hourDigit2=now.hour()%10;
miniteDigit1=now.minute()/10;
miniteDigit2=now.minute()%10;
//Serial.println(now.hour()+':'+now.minute()+':'+now.second());
//Color calculation
currColor[0] = colorSchedule[now.hour()][0];
currColor[1] = colorSchedule[now.hour()][1];
currColor[2] = colorSchedule[now.hour()][2];
//Extra power saving by disabling the first 0 in hours like 09:30
if (hourDigit1 == 0)
{
setNumber(10,0,currColor[0],currColor[1],currColor[2]);
}else{
setNumber(hourDigit1,0,currColor[0],currColor[1],currColor[2]);
}
setNumber(hourDigit2,1,currColor[0],currColor[1],currColor[2]);
setNumber(miniteDigit1,2,currColor[0],currColor[1],currColor[2]);
setNumber(miniteDigit2,3,currColor[0],currColor[1],currColor[2]);
if(blinkState==0)
{
setBlink(currColor[0],currColor[1],currColor[2]);
blinkState = 1;
}else
{
setBlink(0,0,0);
blinkState = 0;
}
pixels.show();
blinks.show();
delay(delayval);
}
habe einfach beide segment eingefügt und das teil mal umgedreht und siehe da ihr seit die besten
kann man die Bilder zu einzel hochladen
Hi
Besten Dank für die Rückmeldung!
Super, daß Dir Das gelungen ist und: herzlich willkommen in der wunderbaren Welt der Elektronik ![]()
MfG
PS: Du kannst mehrere Bilder als Anhang ... äh ... anhängen ![]()
Dann den Post abschicken.
Nun 5 Minuten warten (Post-Sperre bei <100 Posts ... blöd, ich weiß)
Nun den Post editieren, auf die Anhänge rechts klicken und die URL kopieren, einen IMG-Tag öffnen und diese URL dort einfügen.
Das für jedes Foto (Du kannst aber Alle auf 1 Mal in IMG-Tags packen).
VORSCHAU !! - Du kommst frühestens in 5 Minuten dazu, Das wieder hinzubiegen, wenn - egal was - nicht gepasst hat.
Super, dass es jetzt funktioniert!
so mal versuchen ob ich es hin bekomme
Falke1166:
der sagt immer forbidden to large
Pro Bild maximal 1 MB (steht ja auch dort). Also musst du es vor dem Hochladen eventuell noch ein wenig kleiner machen.
Hi
Ich waage kaum zu fragen, welches Betriebssystem Du benutzt - unter Linux habe ich mir dafür einen kleinen Skript geschrieben, Der mir alle Bilder im Ordner verkleinert und in den Ordner nachschau ./klein/ speichert.
# Script reduziert die Größe der im Ordner enthaltenen (Bild)-Files auf 800x600
# und speichert Diese im Unterordner /klein/
# unbekannte Formate (aka Ordner, dieser Script, ...) ergeben eine Fehlermeldung
# dadurch erspare ich mir, sämtliche Erweiterungen angeben zu müssen
for file in *
do
# convert $file -rotate 90 rotated-$file
convert "$file" -resize 800x600 -quality 50% "./klein/resized-$file"
done
File als convert.sh speichern, ausführbar machen, im Terminal aufrufen.
Skript versucht ALLES (auch Verzeichnisse) zu verkleinern - geht natürlich nicht und ergibt Fehlermeldungen.
Fotos werden aber auf 800x600 verkleinert und in der QUalität reduziert.
MfG
#linux,#resize,#bash,#terminal,#convert,#bilder
Wenn er Windows benutzt, kann ich Irfanview empfehlen, das kann neben der Anzeige auch Grundbearbeitungen einzeln und im Batch.
Gruß Tommy
Edit: Link ergänzt
Downsitzer unter Windows macht es in einem Rutsch für die gesamte Direktory.
Grüße Uwe
Danke, den Downsizer kannte ich noch nicht.
Gruß Tommy







