Moin Zusammen, nach einer längeren Sommerpause habe ich es endlich geschafft das Projekt abzuschließen. Ursprünglich wollte ich das BF4 schon zur Dortmunder Messe fertig haben. Aber wie es immer so kommt, hat sich ein Kabel vom Display entschieden nicht mitzuspielen und lieber abzureißen. Danach ist das Projekt erst einmal liegen geblieben. Inzwischen hat das Fahrzeug 31 LED's und ein 0.6 OLED Display bekommen. Die Kabelführung war hier gar nicht so einfach, da der gesamte Strang incl. LED-Dachbeleuchtung durch den Drehantrieb geführt werden muss. Das Display kann alle benötigten Warntafeln darstellen und wird durch einen Seeduino Xiao und einen Spannungswandler angesteuert. Im Dach habe ich einen ATTiny85 für die Beleuchtung und den Akku positioniert. Ein weiterer Tiny hält die DC-Cars hinter dem Fahrzeug ordentlich auf Abstand. Hier noch ein kleines Video von dem BF4:
VIDEO
---------------------------------------------------- Viele Grüße aus dem Norden Björnhttps://www.youtube.com/channel/UCS-QU-plI0K0gqP8ssFMyJA https://www.shapeways.com/shops/bjoerns-shop
Folgende Mitglieder finden das Top: e-up! , Bastelphilipp , Thomas M , frankeisenbahn , bfw-2013 , michl , hl1949 , half_pig , FrederikZ , Macher , Matthew , WiFi-Jörg , Skippy und andreakarina
Moin Zusammen, die Ansteuerung des Displays habe ich mit dem Seeduino Xiao umgesetzt. Den Quellcode für die Bilder und das Wechseln könnt ihr hier sehen. Mein Schaltbild folgt demnächst.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313
/* Anzeige fuer das BF4 mit 0.6 OLED Display von Björn Lorenzen Breakout Pin --> Seeduino Xiao ------------------------------ GND --> GND VIN --> 5V (3.3V works too) RST --> 2 MOSI --> 10 SCLK --> 8 D/C --> 3 CS --> 4 If you want to support development of software like this consider purchasing the breakout from SparkFun! https://www.sparkfun.com/products/14680 */ #include "SparkFun_RGB_OLED_64x64.h" // Click here to get the library: http://librarymanager/All#SparkFun_RGB_OLED_64x64 #define CS_PIN 4 #define DC_PIN 3 #define RST_PIN 2 int i; RGB_OLED_64x64 myOLED; // Declare OLED object of the RGB_OLED_64x64 class boolean invertDisp = false; void setup() { Serial.begin(9600); pinMode(5, INPUT); // Eingang für das Servosignal 1882 = 100%, 1490 = 0%, 1090 = -100% (5 am XIAO) SPI.begin(); myOLED.begin(DC_PIN, RST_PIN, CS_PIN, SPI, 8000000); // Use 8 MHz SPI on Arduino Uno instead of the default/maximum (10 MHz) myOLED.clearDisplay(); // Fills the screen with black myOLED.setCursor(0,0); // Sets the cursor relative to the display. (0,0) is the upper left corner and (63,63) is the lower right } void loop() { int Knueppelstellung; int Bildaendern; static int alteKnueppelstellung; static int zaehler; int DeltangPin = pulseIn(5, HIGH, 25000); // Read the pulse width of Serial.println(DeltangPin); if (DeltangPin < 1200) { Knueppelstellung=-1; } else if (DeltangPin > 1600) { Knueppelstellung=1; } else { Knueppelstellung=0; Bildaendern=false; } if( (1 == Knueppelstellung) && (Knueppelstellung != alteKnueppelstellung) ) { zaehler=0; Bildaendern=true; //Serial.println(Knueppelstellung); } else if( (-1 == Knueppelstellung) && (Knueppelstellung != alteKnueppelstellung) ) { zaehler++; Bildaendern=true; //Serial.println(Knueppelstellung); } alteKnueppelstellung=Knueppelstellung; if (zaehler>7){ //maximale Anzahl Bilder, wenn mehr dann schwarz "case"! zaehler=1; } if (Bildaendern){ Bildupdate(zaehler); Bildaendern=false; delay(100); //Verzögerung damit der Code nicht zu schnell durch läuft } } void Bildupdate(int Bild){ switch (Bild){ case 0: //schwarz myOLED.clearDisplay(); break; case 1: //Bild 1 - Überholverbot LKW myOLED.clearDisplay(); Ueberholverbot_LKW(); break; case 2: //Bild 2 - Überholverbot PKW myOLED.clearDisplay(); Ueberholverbot_PKW(); break; case 3: //Bild 3 - Achzig myOLED.clearDisplay(); Achzig(); break; case 4: //Bild 4 - Achtung myOLED.clearDisplay(); Achtung(); break; case 5: //Bild 5 - Pfeil_links myOLED.clearDisplay(); Pfeil_links(); break; case 6: //Bild 6 - Pfeil_rechts myOLED.clearDisplay(); Pfeil_rechts(); break; case 7: //Bild 7 - Gesperrt myOLED.clearDisplay(); Gesperrt(); break; } } void Achzig( void ) { //Kreis myOLED.circleFill(32,38,25,get65kValueRGB(255, 0, 0)); // (Mittelpunkt_x, Mittelpunkt_y, Radius) myOLED.circleFill(32,38,20,get65kValueRGB(0, 0, 0)); // (Mittelpunkt_x, Mittelpunkt_y, Radius) //Acht myOLED.rectFill(22,31,6,2,get65kValueRGB(255,255,255)); // (Start_x, Start_y, Laenge_x, Laenge_y) Farbe myOLED.rectFill(22,37,6,2,get65kValueRGB(255,255,255)); myOLED.rectFill(22,43,6,2,get65kValueRGB(255,255,255)); myOLED.rectFill(20,33,2,4,get65kValueRGB(255,255,255)); myOLED.rectFill(20,39,2,4,get65kValueRGB(255,255,255)); myOLED.rectFill(28,33,2,4,get65kValueRGB(255,255,255)); myOLED.rectFill(28,39,2,4,get65kValueRGB(255,255,255)); //Null myOLED.rectFill(36,31,6,2,get65kValueRGB(255,255,255)); myOLED.rectFill(36,43,6,2,get65kValueRGB(255,255,255)); myOLED.rectFill(34,33,2,10,get65kValueRGB(255,255,255)); myOLED.rectFill(42,33,2,10,get65kValueRGB(255,255,255)); myOLED.rectFill(36,39,2,2,get65kValueRGB(255,255,255)); myOLED.rectFill(38,37,2,2,get65kValueRGB(255,255,255)); myOLED.rectFill(40,35,2,2,get65kValueRGB(255,255,255)); } void Gesperrt( void ) { //Kreis myOLED.circleFill(32,38,25,get65kValueRGB(255, 0, 0)); // (Mittelpunkt_x, Mittelpunkt_y, Radius) myOLED.circleFill(32,38,20,get65kValueRGB(0, 0, 0)); // (Mittelpunkt_x, Mittelpunkt_y, Radius) } void Pfeil_links( void ) { //Kreis myOLED.circleFill(32,38,25,get65kValueRGB(0, 0, 255)); // (Mittelpunkt_x, Mittelpunkt_y, Radius) //Pfeilspitze unten myOLED.rectFill(19,47,18,4,get65kValueRGB(255,255,255)); myOLED.rectFill(37,48,1,3,get65kValueRGB(255,255,255)); myOLED.rectFill(38,49,1,2,get65kValueRGB(255,255,255)); myOLED.rectFill(39,50,1,1,get65kValueRGB(255,255,255)); //Pfeilspitze links myOLED.rectFill(19,33,4,18,get65kValueRGB(255,255,255)); myOLED.rectFill(20,32,3,1,get65kValueRGB(255,255,255)); myOLED.rectFill(21,31,2,1,get65kValueRGB(255,255,255)); myOLED.rectFill(22,30,1,1,get65kValueRGB(255,255,255)); //Mittellinie myOLED.line(19,51,45,25,get65kValueRGB(255,255,255)); //(Zeile Punkt1,Spalte Punkt1, Zeile Punkt2, Spalte Punkt2)0-63 myOLED.line(19,50,44,25,get65kValueRGB(255,255,255)); //(Zeile Punkt1,Spalte Punkt1, Zeile Punkt2, Spalte Punkt2)0-63 myOLED.line(20,51,45,26,get65kValueRGB(255,255,255)); //(Zeile Punkt1,Spalte Punkt1, Zeile Punkt2, Spalte Punkt2)0-63 myOLED.line(19,49,43,25,get65kValueRGB(255,255,255)); //(Zeile Punkt1,Spalte Punkt1, Zeile Punkt2, Spalte Punkt2)0-63 myOLED.line(21,51,45,27,get65kValueRGB(255,255,255)); //(Zeile Punkt1,Spalte Punkt1, Zeile Punkt2, Spalte Punkt2)0-63 myOLED.line(19,48,42,25,get65kValueRGB(255,255,255)); //(Zeile Punkt1,Spalte Punkt1, Zeile Punkt2, Spalte Punkt2)0-63 myOLED.line(22,51,45,28,get65kValueRGB(255,255,255)); //(Zeile Punkt1,Spalte Punkt1, Zeile Punkt2, Spalte Punkt2)0-63 myOLED.line(19,47,41,25,get65kValueRGB(255,255,255)); //(Zeile Punkt1,Spalte Punkt1, Zeile Punkt2, Spalte Punkt2)0-63 myOLED.line(23,51,45,29,get65kValueRGB(255,255,255)); //(Zeile Punkt1,Spalte Punkt1, Zeile Punkt2, Spalte Punkt2)0-63 myOLED.line(43,24,46,27,get65kValueRGB(0,0,255)); //(Zeile Punkt1,Spalte Punkt1, Zeile Punkt2, Spalte Punkt2)0-63 myOLED.line(44,24,47,27,get65kValueRGB(0,0,255)); //(Zeile Punkt1,Spalte Punkt1, Zeile Punkt2, Spalte Punkt2)0-63 } void Pfeil_rechts( void ) { //Kreis myOLED.circleFill(32,38,25,get65kValueRGB(0, 0, 255)); // (Mittelpunkt_x, Mittelpunkt_y, Radius) //Pfeilspitze unten myOLED.rectFill(26,47,18,4,get65kValueRGB(255,255,255)); myOLED.rectFill(25,48,1,3,get65kValueRGB(255,255,255)); myOLED.rectFill(24,49,1,2,get65kValueRGB(255,255,255)); myOLED.rectFill(23,50,1,1,get65kValueRGB(255,255,255)); //Pfeilspitze links myOLED.rectFill(41,33,4,18,get65kValueRGB(255,255,255)); myOLED.rectFill(42,32,3,1,get65kValueRGB(255,255,255)); myOLED.rectFill(43,31,2,1,get65kValueRGB(255,255,255)); myOLED.rectFill(44,30,1,1,get65kValueRGB(255,255,255)); //Mittellinie myOLED.line(19,25,45,51,get65kValueRGB(255,255,255)); //(Zeile Punkt1,Spalte Punkt1, Zeile Punkt2, Spalte Punkt2)0-63 myOLED.line(20,25,45,50,get65kValueRGB(255,255,255)); //(Zeile Punkt1,Spalte Punkt1, Zeile Punkt2, Spalte Punkt2)0-63 myOLED.line(19,26,44,51,get65kValueRGB(255,255,255)); //(Zeile Punkt1,Spalte Punkt1, Zeile Punkt2, Spalte Punkt2)0-63 myOLED.line(21,25,45,49,get65kValueRGB(255,255,255)); //(Zeile Punkt1,Spalte Punkt1, Zeile Punkt2, Spalte Punkt2)0-63 myOLED.line(19,27,43,51,get65kValueRGB(255,255,255)); //(Zeile Punkt1,Spalte Punkt1, Zeile Punkt2, Spalte Punkt2)0-63 myOLED.line(22,25,45,48,get65kValueRGB(255,255,255)); //(Zeile Punkt1,Spalte Punkt1, Zeile Punkt2, Spalte Punkt2)0-63 myOLED.line(19,28,42,51,get65kValueRGB(255,255,255)); //(Zeile Punkt1,Spalte Punkt1, Zeile Punkt2, Spalte Punkt2)0-63 myOLED.line(23,25,45,47,get65kValueRGB(255,255,255)); //(Zeile Punkt1,Spalte Punkt1, Zeile Punkt2, Spalte Punkt2)0-63 myOLED.line(19,29,41,51,get65kValueRGB(255,255,255)); //(Zeile Punkt1,Spalte Punkt1, Zeile Punkt2, Spalte Punkt2)0-63 myOLED.line(21,24,18,27,get65kValueRGB(0,0,255)); //(Zeile Punkt1,Spalte Punkt1, Zeile Punkt2, Spalte Punkt2)0-63 myOLED.line(20,24,18,26,get65kValueRGB(0,0,255)); //(Zeile Punkt1,Spalte Punkt1, Zeile Punkt2, Spalte Punkt2)0-63 } void Ueberholverbot_LKW( void ) { //Kreis myOLED.circleFill(32,38,25,get65kValueRGB(255, 0, 0)); // (Mittelpunkt_x, Mittelpunkt_y, Radius) myOLED.circleFill(32,38,20,get65kValueRGB(0, 0, 0)); // (Mittelpunkt_x, Mittelpunkt_y, Radius) //LKW myOLED.line(20,31,30,31,get65kValueRGB(255,0,0)); myOLED.rectFill(19,32,11,9,get65kValueRGB(255,0,0)); myOLED.line(19,42,31,42,get65kValueRGB(186,7,7)); myOLED.rectFill(19,43,2,3,get65kValueRGB(255,0,0)); myOLED.rectFill(28,43,2,3,get65kValueRGB(255,0,0)); myOLED.rectFill(21,44,7,1,get65kValueRGB(255,0,0)); //PKW myOLED.rectFill(37,36,7,1,get65kValueRGB(255,255,255)); myOLED.rectFill(36,37,1,3,get65kValueRGB(255,255,255)); myOLED.rectFill(44,37,1,3,get65kValueRGB(255,255,255)); myOLED.rectFill(35,40,11,3,get65kValueRGB(255,255,255)); myOLED.rectFill(36,43,9,1,get65kValueRGB(255,255,255)); myOLED.rectFill(36,44,2,1,get65kValueRGB(255,255,255)); myOLED.rectFill(43,44,2,1,get65kValueRGB(255,255,255)); myOLED.rectFill(36,41,1,1,get65kValueRGB(255,153,51)); myOLED.rectFill(44,41,1,1,get65kValueRGB(255,153,51)); myOLED.rectFill(37,41,1,1,get65kValueRGB(255,0,0)); myOLED.rectFill(43,41,1,1,get65kValueRGB(255,0,0)); } void Ueberholverbot_PKW( void ) { //Kreis myOLED.circleFill(32,38,25,get65kValueRGB(255, 0, 0)); // (Mittelpunkt_x, Mittelpunkt_y, Radius) myOLED.circleFill(32,38,20,get65kValueRGB(0, 0, 0)); // (Mittelpunkt_x, Mittelpunkt_y, Radius) //PKW rot myOLED.rectFill(20,36,7,1,get65kValueRGB(255,0,0)); myOLED.rectFill(19,37,1,3,get65kValueRGB(255,0,0)); myOLED.rectFill(27,37,1,3,get65kValueRGB(255,0,0)); myOLED.rectFill(18,40,11,3,get65kValueRGB(255,0,0)); myOLED.rectFill(19,43,9,1,get65kValueRGB(255,0,0)); myOLED.rectFill(19,44,2,1,get65kValueRGB(255,0,0)); myOLED.rectFill(26,44,2,1,get65kValueRGB(255,0,0)); myOLED.rectFill(19,41,1,1,get65kValueRGB(255,153,51)); myOLED.rectFill(27,41,1,1,get65kValueRGB(255,153,51)); myOLED.rectFill(20,41,1,1,get65kValueRGB(186,7,7)); myOLED.rectFill(26,41,1,1,get65kValueRGB(186,7,7)); //PKW weiß myOLED.rectFill(37,36,7,1,get65kValueRGB(255,255,255)); myOLED.rectFill(36,37,1,3,get65kValueRGB(255,255,255)); myOLED.rectFill(44,37,1,3,get65kValueRGB(255,255,255)); myOLED.rectFill(35,40,11,3,get65kValueRGB(255,255,255)); myOLED.rectFill(36,43,9,1,get65kValueRGB(255,255,255)); myOLED.rectFill(36,44,2,1,get65kValueRGB(255,255,255)); myOLED.rectFill(43,44,2,1,get65kValueRGB(255,255,255)); myOLED.rectFill(36,41,1,1,get65kValueRGB(255,153,51)); myOLED.rectFill(44,41,1,1,get65kValueRGB(255,153,51)); myOLED.rectFill(37,41,1,1,get65kValueRGB(255,0,0)); myOLED.rectFill(43,41,1,1,get65kValueRGB(255,0,0)); } void Achtung( void ) { //Dreieck myOLED.line(33,13,58,63,get65kValueRGB(255,0,0)); myOLED.line(8,63,33,13,get65kValueRGB(255,0,0)); myOLED.line(8,63,58,63,get65kValueRGB(255,0,0)); myOLED.line(33,15,57,63,get65kValueRGB(255,0,0)); myOLED.line(9,63,33,15,get65kValueRGB(255,0,0)); myOLED.line(9,62,57,62,get65kValueRGB(255,0,0)); myOLED.line(33,17,56,63,get65kValueRGB(255,0,0)); myOLED.line(10,63,33,17,get65kValueRGB(255,0,0)); myOLED.line(10,61,55,61,get65kValueRGB(255,0,0)); myOLED.line(33,19,55,63,get65kValueRGB(255,0,0)); myOLED.line(11,63,33,19,get65kValueRGB(255,0,0)); myOLED.line(11,60,55,60,get65kValueRGB(255,0,0)); myOLED.line(33,21,54,63,get65kValueRGB(255,0,0)); myOLED.line(12,63,33,21,get65kValueRGB(255,0,0)); myOLED.line(12,59,54,59,get65kValueRGB(255,0,0)); myOLED.line(33,23,53,63,get65kValueRGB(255,0,0)); myOLED.line(13,63,33,23,get65kValueRGB(255,0,0)); myOLED.line(33,25,52,63,get65kValueRGB(255,0,0)); myOLED.line(14,63,33,25,get65kValueRGB(255,0,0)); //Ausrufezeichen myOLED.circleFill(33,55,2,get65kValueRGB(255,255,255)); myOLED.circleFill(33,35,2,get65kValueRGB(255,255,255)); myOLED.circleFill(33,48,2,get65kValueRGB(255,255,255)); myOLED.rectFill(31,35,4,13,get65kValueRGB(255,255,255)); }
---------------------------------------------------- Viele Grüße aus dem Norden Björnhttps://www.youtube.com/channel/UCS-QU-plI0K0gqP8ssFMyJA https://www.shapeways.com/shops/bjoerns-shop
Hallo Björn, das ist eine super Arbeit! Gefällt mir großartig. Servus aus dem Münchner Speckgürtel Mike
Hallo Björn, gefällt auch mir richtig gut, das muss ich wohl nachbauen, auch wenn ich von den Displays und Seeduinos noch keine Ahnung habe... Aber man ist ja lernfähig. ;) Dazu zwei Fragen: Den 470 uF Kondensator hast du mit welcher Spannung gewählt? 10V? Und der Baustein unten, was ist das? Wird der mit dem Seeduino geliefert? Danke dir für eine kurze Rückmeldung!
https://www.shapeways.com/shops/mirkoengineering Facebook: Mikroengineering Instagram: Mikroengineering Youtube: Mikroengineering
Wenn Sie hier auf Links zu eBay klicken und einen Kauf tätigen, kann dies dazu führen, dass diese Website eine Provision erhält.
Moin Nico, schön das dir das Modell gefällt. Bin gespannt was du daraus machst. Ich habe einen 4.7uF mit 16V verwendet. Der lag noch rum. Ich hatte mal eine ganze Packung mit allen gängigen Größen bei Ali bestellt. Die schwarze Platine ist ein Step Up Wandler und stellt die 12V zur Verfügung. Gibt es bei Ebay.
---------------------------------------------------- Viele Grüße aus dem Norden Björnhttps://www.youtube.com/channel/UCS-QU-plI0K0gqP8ssFMyJA https://www.shapeways.com/shops/bjoerns-shop
Hallo Björn, war bestimmt eine Menge Denk-, Konstruktions- und Zusammenbauarbeit erforderlich. Ich kann mir kaum vorstellen, wie Du das alles da rein bekommen hast. Auf jeden Fall, dass funktionalste RC-BF was ich gesehen hab. Sogar die 4 Rundumleuchten am Dach sind wie beim Original BF4 dran. Auf den Dioramen ist Dein Modell bestimmt ein echter Eyecatcher (bitte nicht ins deutsche Übersetzen) und eine großartige Ergänzung im gemeinsamen Spielbetrieb mit den Schwerlastmodellen und Baustellenfahrzeugen. Wieviel Controller hast Du nun im Fahrzeug verbaut? Ich würde mich freuen das BF4 mal live zu sehen. Ein sehr schönes Ergebnis. Viele Grüße Jörg
https://youtube.com/@Der_am_Ufer_steht
Moin Jörg, vielen Dank für die netten Worte. Viel Platz ist in dem Fahrzeug echt nicht mehr übrig. Der Drehantrieb nimmt noch mal einiges an Platz weg. Verbaut habe ich einen Deltang RX43D2, 2 x Attiny 85, einen Seeduino Xiao und den Spannungswandler. Der nächste öffentliche Auftritt ist in Leipzig geplant. Ein gemeinsames Begleiten eines Schwertransportes währe bestimmt ein richtiger Hingucker und eine Coole Nummer. In Bremen stellen wir dieses Jahr leider nicht aus.
---------------------------------------------------- Viele Grüße aus dem Norden Björnhttps://www.youtube.com/channel/UCS-QU-plI0K0gqP8ssFMyJA https://www.shapeways.com/shops/bjoerns-shop
Hallo Björn, Tankanzeige funktioniert jetzt, hatte ein falsches Display erwischt. Danke für deine Unterstützung. Habe eine Bitte würdest du mir den Sketsch für ------------------------------------- Busch Unimog U 5023 Straßenmeisterei mit Sicherungsanhänger und OLED Farbdisplay RC 1:87 ------------------------------------ zur Verfügung stellen, würde mich sehr freuen viele Grüße Bruno
Hallo Björn, Ich baue eine BF3 um und möchte auch das 0.6 OLED Display nutzen. Schaltung in Test gebaut laut dein Schaltplan und Arduino code.
Zitat von Björn L im Beitrag #18 Moin Zusammen, so hier dann noch der Schaltplan für das Display.Das Display funktioniert nur sind bei mir die Farben etwas anders: was Rot sein soll ist Blau und umgekehrt.
Die Arduino code habe ich ungeändert auf den Seeduino gespielt.
Was habe ich falsch gemacht?
Ich könnte in die Arduino code alle "get65kValueRGB(255, 0, 0)" ändern indem ich der erste und dritte Parameter umtausche aber das ist mir zu blöd. :)
Gr, Ron
Habe eine einfachere Lösung gefunden. Ich denk die Sparkfun_SSD1357_OLED Library hat einen fehler in der "get65kValueRGB(r, g, b)" Funktion:
1 2 3 4 5 6 7 8 9
uint16_t get65kValueRGB(uint8_t R, uint8_t G, uint8_t B) { uint16_t rScaled = (R*31)/255; uint16_t gScaled = (G*63)/255; uint16_t bScaled = (B*31)/255; // return (((rScaled & 0x001F) << 11) | ((gScaled & 0x003F) << 5) | ((bScaled & 0x001F) << 0)); //adjusted: colors red and blue were mixed up return (((bScaled & 0x001F) << 11) | ((gScaled & 0x003F) << 5) | ((rScaled & 0x001F) << 0)); } die return Zeile habe ich geändert und da war alles wie es sein soll.
Gr, Ron
Hallo Ron, falsch hast du nichts gemacht . Die ersten Displays welche man vor Jahren kaufen konnten, waren im rot - blau verhalten genau anders herum. Bei den neueren habe ich im Code die Farben angepasst. Das in der Lib zu drehen ist auch eine super Idee.
---------------------------------------------------- Viele Grüße aus dem Norden Björnhttps://www.youtube.com/channel/UCS-QU-plI0K0gqP8ssFMyJA
Rund um das Forum
| | - Mikromodellbau Magazin
| | - Nettiquette
| | - Änderungen im Forum
| | - Vorstellungen der Mitglieder
| | - Testbereich
Einsteiger
| | - Grundlagen
| | - Probleme
| | - Tipps & Tricks für Einsteiger
Fahrzeuge in 1:87 - 1:220
| | - Bike, Trike, Quad
| | - Baumaschinen
| | - Lieferwagen
| | - PKWs
| | - PKW Rennwagen
| | - LKWs
| | - Race Trucks
| | - Einsatzfahrzeuge
| | - sonstige Fahrzeuge
| | - Modellbahnen
Schiffsmodelle
| | - Arbeitsschiffe
| | - Fähren
| | - Schlepper
| | - sonstige Schiffe
U - Boote
| | - Eigenbauten
| | - Umbauten
| | - Tipps & Tricks
| | - Probleme
Luftfahrt
| | - Flugzeuge
| | - Hubschrauber
| | - Luftschiffe
Module
| | - Trial Module
| | - Straßenmodule
| | - Ortsfeste Funktionsmodelle ( Kräne, Silo...
| | - Tipps & Tricks zum Modulbau
| | - Modellbahn
Zubehör
| | - Fernsteuerungen
| | - Ladegeräte
| | - Empfänger, Servos, Multiswitch
Car System
| | - Eigenbauten & Umbauten
| | - Infracar
| | - DC Car
| | - Probleme
Elektronik
| | - Bootloader System von Mikroantriebe
| | - Grundlagen
| | - Probleme
| | - Tipps & Tricks
| | - Deltang Empfänger DSM2 & DSMX
Mechanik
| | - Eigenbauten
| | - Probleme
| | - Maschinen, Werkzeuge und Zubehör
| | - Tipps & Tricks
Programmierung ( AVR, PIC ... )
| | - Harrys Modellbau Tinys
| | - Projekte
| | - Probleme
| | - Programme zum Download
| | - Bascom
| | - Bascom - Unser Einsteigerkurs
3D - Druck
| | - 3D Drucker
| | - Software zur Konstruktion, sowie zum Druck
| | - Projekte
| | - Kostenlose 3D Modelle zum Download
Ätzen
| | - Ätztechnik
| | - Platinen Ätzen
| | - Bleche Ätzen
| | - Vorlagen Downloads
| | - Probleme
Termine
| | - Ausstellungen
| | - Messen
| | - Treffen
| | - Online Stammtisch (Google Hangout)
Suche
| | - Modelle
| | - Zubehör
| | - Sonstiges
Biete
| | - Modelle und Bausätze
| | - Zubehör
| | - Sonstiges
Dies & Das
| | - Lackierungen
| | - Alles was nichts mit Mikromodellbau zu t...
| | - Euer Arbeitsbereich
Links
| | - Diverses
| | - Händler für Zubehör
| | - Private Homepages
Sprung
Bitte geben Sie einen Grund für die Verwarnung an
Der Grund erscheint unter dem Beitrag.
Spam Netikette Form
Sonstiges
Dieser Beitrag enthält unerwünschte Werbung.
Dieser Beitrag verstößt gegen die Netiquette des Forums.
Beiträge, die IN GROßBUCHSTABEN oder fett geschrieben sind bitte vermeiden.
{[userwarning_empty_error]}
Mitglied per PN benachrichtigen
Es wird der oben genannte Grund verwendet. Klicken Sie hier , um den Inhalt der privaten Nachricht anzupassen
Legen Sie hier den Inhalt der PN-Benachrichtigung fest.
Hinweis: Dieses Mitglied wurde bereits 4 Mal verwarnt. Bei einer weiteren Verwarnung wird das Mitglied automatisch gesperrt.