// https://wokwi.com/projects/423067790873291777
// https://wokwi.com/projects/403187130149864449
#include <Wire.h>
#include <SSD1306Ascii.h>
#include <SSD1306AsciiWire.h>
#define wokwisimulation 1
SSD1306AsciiWire oled;
#define ssd1306 1
#define seriell 1
#define POTI A6
#define ROT 12
#define GELB 11
#define GRUEN 10
unsigned long ms_alt = 0;
#include <Adafruit_NeoPixel.h> // Einbindung der Adafruit_Neopixel.h Bibliothek
#define PIN 4 // An welchem digitalen Pin ist der WS2812B Ring mit dem Mikrocontroller verbunden
#define NUMPIXELS 12 // Über wie viele Pixel verfügt der WS2812B Ring?
Adafruit_NeoPixel led_ring = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
void OLED_Poti( int ad );
void ledRing ( unsigned int value, uint8_t r, uint8_t g, uint8_t b );
void Ampel_Blinken( byte Ampel_farbe, unsigned int Thalbe );
void setup()
{
#ifdef wokwisimulation
led_ring.setBrightness( 210 );
#else
led_ring.setBrightness( 42 ); // auf HW-Cube viel zu hell
#endif
for( byte i=10; i<13; i++) pinMode( i, OUTPUT); // LEDs rot-gelb-gruen
Wire.begin();
oled.setFont(System5x7);
oled.begin(&Adafruit128x64, 0x3C);
oled.set2X();
led_ring.begin();
// ab hier nur noch Nonsens: // sorry, SHNE
ledRing( 7, 8, 9, 10 ); // Regenbogenfarben mit Unsinnsargumenten
Ampel_Blinken( GELB, 0 ); // blinkt nicht,sondern leuchtet permanent
} // ende setup
void OLED_Poti( int ad )
{
oled.setCursor(0,1);
oled.print( "DIY! " );
}
void ledRing ( unsigned int value, uint8_t r, uint8_t g, uint8_t b )
{
for( byte i=0; i<NUMPIXELS; i++)
{
if( i < 6 ) { b = 5-i; g = i; r = 0; }
if( i > 5 ) { b = 0; g = 11-i; r = i-6; }
led_ring.setPixelColor(i, r*50, g*50, b*50 );
}
led_ring.show(); // Anzeigen der Pixelfarben auf dem WS2812B LED Ring
}
void Ampel_Blinken( byte Ampel_farbe, unsigned int Thalbe ) {
digitalWrite( 10, HIGH) ; digitalWrite( 12, HIGH) ;
digitalWrite( 11, LOW ) ; // gelb ist raus
}
void loop()
{
int Poti = A6;
oled.setCursor(0,1);
oled.print(Poti);
delay( 500 ) ;
oled.setCursor(0,1);
oled.print( " " );
delay( 500 ) ;
} // ende loop
0
1
2
3
4
5
6