Programmier-Problem mit Ucglib

Werte Programmierspezialisten,

ich wende mich heute mit einer Frage an euch. Ich habe mit einem kleines Testprogramm mich mit den RGB LED und Farben beschäftigt und habe da ein kleines Problem bekommen. Ich möchte ein 1.7 TFT Display betreiben was auch bisher mit der "Ucglib.h" ohne Probleme funktionierte. Heute habe ich aber folgendes Problem. Wenn ich an dem Digitalpin 12 meines Nano den LED Streifen anhänge leuchten keine LEDs. Erst wenn ich in Zeile 21 //ucg.begin(UCG_FONT_MODE_SOLID); aus kommentiere leuchten die LED.

Da ich keinen Digitalen PIN mehr frei habe musste ich es mit einem Analogen versuchen und mit diesem Funktioniert es auch mit der Zeile 21. Auch die Installation einer anderen FastLed.h hat zu keinem Erfolg geführt.

Da man aber den Befehl in diese Zeile unbedingt benötigt und ich keine Informationen gefunden habe das ich diese PIN dafür nicht verwenden darf wollte ich Fragen ob dies bekannt ist?

#include <FastLED.h>
#include "Ucglib.h"

Ucglib_ST7735_18x128x160_HWSPI ucg(/*cd=*/ 9, /*cs=*/ 10, /*reset=*/ 8);  // PIN Definition des TFT Display

#define NUM_LEDS  6
//#define LED_PIN   6
#define LED_PIN   12

CRGB leds[NUM_LEDS];

#define color1  0x00ff00 // gruen
#define color2  0x005aff // blau
#define color3  0xffa500 // orange
#define color4  0xFF0000 // rot

void setup() {
  FastLED.addLeds<WS2812B, LED_PIN, GRB>(leds, NUM_LEDS);
  FastLED.setBrightness(20);
  Serial.begin(9600);
  //ucg.begin(UCG_FONT_MODE_SOLID);
  ucg.clearScreen();
  ucg.setRotate90();

  pinMode(LED_PIN, OUTPUT);                 // D12 als Output 
}

void loop() {
  leds[0] = CRGB::Green;
  leds[1] = CRGB::Blue;
  leds[2] = CRGB::Orange;
  leds[3] = CRGB::Red;
  leds[4] = color1;
  leds[5] = color2;
  
  FastLED.show();
}

LG, Mario

Setze deinen Sketch bitte in Code-Tags hier rein. Wie das geht, steht Hier..
Da ich deinen Sketch aktuell nicht lesen kann, muss ich raten.
Du verwendest ein TFT welches mit SPI angesteurt wird. SPI belegt auch fest den Pin D12, daher kannst du den nicht für die Leds nutzen.

Danke für die Rückmeldung, Ich wußte leider nicht wie man das macht, habe aber die Möglichkeit jetzt gefunden.

Danke für den Hinweis !

Den Grund für deinen Fehler habe ich oben beschrieben.

Und grundsätzlich macht es kein Problem, einen analogen Pin als digitalen Pin zu verwenden. Außer A6 und A7, die sind nur für analog geeignet.

@HotSystems war schneller

Danke für die Info. Ich dachte da ich die SPI Anschlüsse nicht verwendet habe sondern nur CS (D10), RST (D8), RS (D9), SDA (D11) und SCK (D13) dachte ich das dies ohne Probleme funktioniert. Also werde ich eben auf einen Analog Pin ausweichen.

LG, Mario

Ja, das ist etwas verwirrend.
Der Pin D12 ist SPI MISO, und wird zum Daten einlesen (Daten vom TFT zum Controller, also bei Touch) benötigt. Man könnte den Pin evtl. in der Library ausschalten, da er für dein Display nicht benötigt wird. Dazu muss man halt in der Library Änderungen vornehmen.

Nein das ist wirklich nicht nötig. Ich verwende jetzt A1 da A0 schon belegt ist dafür. Aber Danke nochmals für deine Hilfe, gelesen habe ich nirgendwo etwas das dieser PIN D12 dann Tabu ist. Wie du schon geschrieben hast, etwas verwirrend :slight_smile:
Blöd ist nur das ich schon einen Print habe. Naja Leiterbahn aufkratzen und mittels Draht eine Verbindung machen.

Naja, viele Beschreibungen sind leider nicht sehr ausführlich, da macht es dann die Erfahrung. :wink:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.