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
Farbe und Helligkeit der LED im Code ändern
30.11.2020, 21:42 (Dieser Beitrag wurde zuletzt bearbeitet: 30.11.2020 21:43 von Mutz.)
Beitrag #1
Farbe und Helligkeit der LED im Code ändern
Hallo Zusammen,

ich habe bin Neuling und habe bisher noch nichts mit Arduino und der Programmierung zu tun gehabt.
Ich bin eher durch ein 3D-Druck-Projekt auf Arduino aufmerksam geworden.....dort wurde der Code zur Verfügung gestellt.

Diesbezüglich habe ich auch eine Frage zu der Programmierung.
Und zwar handelt es sich um eine Digitaluhr im 24 Std. Format.

Es ist ein Arduino Nano, RealClock Modul DS3231 und ein Dämmerungssensor verbaut.

Kann mir jemand sagen wo ich im Code die Farbe und Helligkeit der einzelnen Ziffern einstellen kann?
Hinzu kommt das der Dämmerungssensor nicht der Funktion entsprechend funktionier.
Ich sehe das eine eine LED am Modul aufleuchtet sobald eine gewisse Dämmerung vorhanden ist.......aber mehr passiert auch nicht. Die Uhr leuchtet immer egal welche Lichtverhältnisse vorhanden sind.

Vielleicht kann mir ja jemand behilflich sein.

Gruß.....Patrick


Angehängte Datei(en)
.ino  Shelf_Edge_Clock_V1.ino (Größe: 7,16 KB / Downloads: 61)
.ino  digits.ino (Größe: 1,2 KB / Downloads: 66)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.11.2020, 21:50 (Dieser Beitrag wurde zuletzt bearbeitet: 30.11.2020 22:07 von hotsystems.)
Beitrag #2
RE: Farbe und Helligkeit der LED im Code ändern
Wieso fragst du nicht den Autor, der kennt doch seinen Sketch am Besten.

Damit wir helfen können, brauchen wir deinen Sketch in Code-Tags, damit wir den auch gut lesen können.
Code-Tags findest du über die Schaltfläche #.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.11.2020, 21:55
Beitrag #3
RE: Farbe und Helligkeit der LED im Code ändern
Zusätzlich: Gib uns einen Link zur Anzeige.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.11.2020, 22:06
Beitrag #4
RE: Farbe und Helligkeit der LED im Code ändern
Den Autor habe ich schon angeschrieben, aber bisher keine Antwort bekommen.
Also ob ich das jetzt so richtig mache mit Code-Tags weiß ich nichtHuh

Hier ein Link von dem Projekt
https://www.youtube.com/watch?v=8E0SeycTzHw

Code:
* 3D printed smart shelving with a giant hidden digital clock in the front edges of the shelves - DIY Machines

==========

More info and build instructions: https://www.youtube.com/watch?v=8E0SeycTzHw

3D printed parts can be downloaded from here: https://www.thingiverse.com/thing:4207524

You will need to install the Adafruit Neopixel library which can be found in the library manager.

This project also uses the handy DS3231 Simple library:- https://github.com/sleemanj/DS3231_Simple   Please follow the instruction on installing this provided on the libraries page

Before you install this code you need to set the time on your DS3231. Once you have connected it as shown in this project and have installed the DS3231_Simple library (see above) you
to go to  'File' >> 'Examples' >> 'DS3231_Simple' >> 'Z1_TimeAndDate' >> 'SetDateTime' and follow the instructions in the example to set the date and time on your RTC

==========


* SAY THANKS:

Buy me a coffee to say thanks: https://ko-fi.com/diymachines
Support us on Patreon: https://www.patreon.com/diymachines

SUBSCRIBE:
■ https://www.youtube.com/channel/UC3jc4X-kEq-dEDYhQ8QoYnQ?sub_confirmation=1

INSTAGRAM: https://www.instagram.com/diy_machines/?hl=en
FACEBOOK: https://www.facebook.com/diymachines/

*/





#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#endif

#include <DS3231_Simple.h>
DS3231_Simple Clock;

// Create a variable to hold the time data
DateTime MyDateAndTime;

// Which pin on the Arduino is connected to the NeoPixels?
#define LEDCLOCK_PIN    6
#define LEDDOWNLIGHT_PIN    5

// How many NeoPixels are attached to the Arduino?
#define LEDCLOCK_COUNT 252
#define LEDDOWNLIGHT_COUNT 14

  //(red * 65536) + (green * 256) + blue ->for 32-bit merged colour value so 16777215 equals white
  //blue color: 3355647
int clockMinuteColour = 16777215; //1677
int clockHourColour = 3355647; //7712

int clockFaceBrightness = 0;

// Declare our NeoPixel objects:
Adafruit_NeoPixel stripClock(LEDCLOCK_COUNT, LEDCLOCK_PIN, NEO_RGB + NEO_KHZ800);
Adafruit_NeoPixel stripDownlighter(LEDDOWNLIGHT_COUNT, LEDDOWNLIGHT_PIN, NEO_GRB + NEO_KHZ800);
// Argument 1 = Number of pixels in NeoPixel strip
// Argument 2 = Arduino pin number (most are valid)
// Argument 3 = Pixel type flags, add together as needed:
//   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
//   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
//   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
//   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
//   NEO_RGBW    Pixels are wired for RGBW bitstream (NeoPixel RGBW products)


//Smoothing of the readings from the light sensor so it is not too twitchy
const int numReadings = 12;

int readings[numReadings];      // the readings from the analog input
int readIndex = 0;              // the index of the current reading
long total = 0;                  // the running total
long average = 0;                // the average



void setup() {

  Serial.begin(9600);
  Clock.begin();

  stripClock.begin();           // INITIALIZE NeoPixel stripClock object (REQUIRED)
  stripClock.show();            // Turn OFF all pixels ASAP
  stripClock.setBrightness(255); // Set inital BRIGHTNESS (max = 255)


  stripDownlighter.begin();           // INITIALIZE NeoPixel stripClock object (REQUIRED)
  stripDownlighter.show();            // Turn OFF all pixels ASAP
  stripDownlighter.setBrightness(100); // Set BRIGHTNESS (max = 255)

  //smoothing
    // initialize all the readings to 0:
  for (int thisReading = 0; thisReading < numReadings; thisReading++) {
    readings[thisReading] = 0;
  }
  
}

void loop() {
  
  //read the time
  readTheTime();

  //display the time on the LEDs
  displayTheTime();




  //Record a reading from the light sensor and add it to the array
  readings[readIndex] = analogRead(A0); //get an average light level from previouse set of samples
  Serial.print("Light sensor value added to array = ");
  Serial.println(readings[readIndex]);
  readIndex = readIndex + 1; // advance to the next position in the array:

  // if we're at the end of the array move the index back around...
  if (readIndex >= numReadings) {
    // ...wrap around to the beginning:
    readIndex = 0;
  }

  //now work out the sum of all the values in the array
  int sumBrightness = 0;
  for (int i=0; i < numReadings; i++)
    {
        sumBrightness += readings[i];
    }
  Serial.print("Sum of the brightness array = ");
  Serial.println(sumBrightness);

  // and calculate the average:
  int lightSensorValue = sumBrightness / numReadings;
  Serial.print("Average light sensor value = ");
  Serial.println(lightSensorValue);


  //set the brightness based on ambiant light levels
  clockFaceBrightness = map(lightSensorValue,50, 1000, 200, 1);
  stripClock.setBrightness(clockFaceBrightness); // Set brightness value of the LEDs
  Serial.print("Mapped brightness value = ");
  Serial.println(clockFaceBrightness);
  
  stripClock.show();

   //(red * 65536) + (green * 256) + blue ->for 32-bit merged colour value so 16777215 equals white
  stripDownlighter.fill(16758861, 0, LEDDOWNLIGHT_COUNT);
  stripDownlighter.show();

  delay(5000);   //this 5 second delay to slow things down during testing

}


void readTheTime(){
  // Ask the clock for the data.
  MyDateAndTime = Clock.read();
  
  // And use it
  Serial.println("");
  Serial.print("Time is: ");   Serial.print(MyDateAndTime.Hour);
  Serial.print(":"); Serial.print(MyDateAndTime.Minute);
  Serial.print(":"); Serial.println(MyDateAndTime.Second);
  Serial.print("Date is: 20");   Serial.print(MyDateAndTime.Year);
  Serial.print(":");  Serial.print(MyDateAndTime.Month);
  Serial.print(":");    Serial.println(MyDateAndTime.Day);
}

void displayTheTime(){

  stripClock.clear(); //clear the clock face

  
  int firstMinuteDigit = MyDateAndTime.Minute % 10; //work out the value of the first digit and then display it
  displayNumber(firstMinuteDigit, 0, clockMinuteColour);

  
  int secondMinuteDigit = floor(MyDateAndTime.Minute / 10); //work out the value for the second digit and then display it
  displayNumber(secondMinuteDigit, 63, clockMinuteColour);  


  int firstHourDigit = MyDateAndTime.Hour % 10; //work out the value for the third digit and then display it
  displayNumber(firstHourDigit, 126, clockHourColour);


  int secondHourDigit = floor(MyDateAndTime.Hour/ 10); //work out the value for the fourth digit and then display it
  displayNumber(secondHourDigit, 189, clockHourColour);
}
  


void displayNumber(int digitToDisplay, int offsetBy, int colourToUse){
    switch (digitToDisplay){
    case 0:
    digitZero(offsetBy,colourToUse);
      break;
    case 1:
      digitOne(offsetBy,colourToUse);
      break;
    case 2:
    digitTwo(offsetBy,colourToUse);
      break;
    case 3:
    digitThree(offsetBy,colourToUse);
      break;
    case 4:
    digitFour(offsetBy,colourToUse);
      break;
    case 5:
    digitFive(offsetBy,colourToUse);
      break;
    case 6:
    digitSix(offsetBy,colourToUse);
      break;
    case 7:
    digitSeven(offsetBy,colourToUse);
      break;
    case 8:
    digitEight(offsetBy,colourToUse);
      break;
    case 9:
    digitNine(offsetBy,colourToUse);
      break;
    default:
     break;
  }
}

Code:
void digitZero(int offset, int colour){
    stripClock.fill(colour, (0 + offset), 27);
    stripClock.fill(colour, (36 + offset), 27);
}

void digitOne(int offset, int colour){
    stripClock.fill(colour, (0 + offset), 9);
    stripClock.fill(colour, (36 + offset), 9);
}

void digitTwo(int offset, int colour){
    stripClock.fill(colour, (0 + offset), 18);
    stripClock.fill(colour, (27 + offset), 9);
    stripClock.fill(colour, (45 + offset), 18);
}

void digitThree(int offset, int colour){
    stripClock.fill(colour, (0 + offset), 18);
    stripClock.fill(colour, (27 + offset), 27);
}

void digitFour(int offset, int colour){
    stripClock.fill(colour, (0 + offset), 9);
    stripClock.fill(colour, (18 + offset), 27);
}

void digitFive(int offset, int colour){
    stripClock.fill(colour, (9 + offset), 45);
}

void digitSix(int offset, int colour){
    stripClock.fill(colour, (9 + offset), 54);
}

void digitSeven(int offset, int colour){
    stripClock.fill(colour, (0 + offset), 18);
    stripClock.fill(colour, (36 + offset), 9);
}

void digitEight(int offset, int colour){
    stripClock.fill(colour, (0 + offset), 63);
}

void digitNine(int offset, int colour){
    stripClock.fill(colour, (0 + offset), 45);
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.11.2020, 22:09 (Dieser Beitrag wurde zuletzt bearbeitet: 30.11.2020 22:12 von hotsystems.)
Beitrag #5
RE: Farbe und Helligkeit der LED im Code ändern
Sorry aber YouTube Videos müssen wir uns nicht ansehen, die sind oft grauenvoll und dann noch falsch.

Poste noch den Link deines Displays und des Dämmerungssensors.

Sorry meinte Leds.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.11.2020, 22:21 (Dieser Beitrag wurde zuletzt bearbeitet: 30.11.2020 22:23 von Mutz.)
Beitrag #6
RE: Farbe und Helligkeit der LED im Code ändern
https://www.amazon.de/dp/B07P6XBH34?tag=...ines05-21^

LED
https://www.amazon.de/dp/B01CDTEJBG?tag=...hines05-21


Ein reines Display habe ich nicht.....bei mir sieht es folgendermaßen aus ( Foto beigefügt )


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.11.2020, 23:14
Beitrag #7
RE: Farbe und Helligkeit der LED im Code ändern
So wie ich es sehe, wird die Farbe über "clockMinuteColour" und "clockHourColour" eingestellt. Die Helligkeit über "setBrightness".
Beim Helligkeitssensor braiúchen wir ein Schaltbild, wie du den angeschlossen hast.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.11.2020, 23:35
Beitrag #8
RE: Farbe und Helligkeit der LED im Code ändern
Das hatte ich auch eventuell vermutet das man darüber die Farbe einstellen kann.....nur wie kommt man da auf die Zahl die dort für die Farbe steht?

Der Helligkeitssensor ist folgendermaßen angeschlossen


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  MiWuLa Hochofen, Code für Nano? modellbahner81 2 418 07.07.2021 11:27
Letzter Beitrag: elux011
  Code zum ansteuern einzelner WS2812B optimieren N1d45 20 1.432 13.05.2021 09:31
Letzter Beitrag: rev.antun
  * vor Variable / Code-Frage N1d45 6 785 13.04.2021 19:49
Letzter Beitrag: N1d45
  Anfänger Frage zu code Beispiel peter_schmieg 4 885 03.03.2021 12:24
Letzter Beitrag: Tommy56
  Pinbelegung SD.h/MFRC522.h ändern? DerTobi 1 608 02.02.2021 12:36
Letzter Beitrag: ardu_arne
Question Serial.print - Einfluss auf Code Natsnok 4 763 17.01.2021 16:48
Letzter Beitrag: Natsnok
  Schalterzustand mit App ändern RCudino 12 1.190 12.01.2021 12:01
Letzter Beitrag: RCudino
  PIN Code Infrarot Fernbedienung Weserbergland 6 757 28.12.2020 15:05
Letzter Beitrag: Chopp
  Modbus RTU Code Probleme dahans 4 767 10.12.2020 21:43
Letzter Beitrag: dahans
  Code in Tabs einbinden AnjinSan 16 2.120 08.12.2020 16:32
Letzter Beitrag: hotsystems

Gehe zu:


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