Probleme mit Code auf DigisparkAttiny85 -> Code läuft auf UNO und NANO

Guten Morgen,

ich habe ein kleines einen auf UNO und Nano getesteten CODE auf einem Digispark Attiny85 Board zum laufen zu bringen.

Leider habe ich für das Projekt nicht soviel Platz und die Platine drum rum ist auch schon geätzt.

Der Code wurde mit IDE über Micronucleus Programmer ohne Fehlermeldung Hochgeladen.

Hat jemand eine Idee. Werde gleich nochmal versuchen den Code hier hochzuladen.

Hier der Code,

Wie gesagt, alles läuft prima auf Uno und nano.

flkp_flop_trigger.ino (3.51 KB)

flkp_flop_trigger.ino (3.51 KB)

ich kenne mich mit dem Digispark zwar nicht aus, aber auf dem ATtiny85 läuft kein Serial und der Physische Pin1 wird für Reset benutzt.
Und den Code solltest du nicht als Anhang, sondern in codetags direkt hochladen.

Danke für die schnelle Antwort.

Serial war nur zu Testzwecken, kann raus. habe ich vergessen im Setup zu löschen.

gem. Unterlagen sind P0 bis P05 alle als Digital IN/OUT nutzbar.

mt772:
gem. Unterlagen sind P0 bis P05 alle als Digital IN/OUT nutzbar.

Ich kenne den DigisparkAttiny85 nicht, aber beim Attiny85 ist der (Pin1) D5 normal als Reset eingerichtet.

Das hatte ardubu ja auch schon geschrieben.

Erst wenn du die Fuses entsprechend setzt, kann der D5 als digitaler Pin genutzt werden.
Danach geht allerdings der Reset nicht mehr.

Prüfe doch mal mit einem einfachen Sketch, ob der D5 tatsächlich als digitaler geeignet ist.

Googlesagt: "Digispark ATtiny85 boards come with the Micronucleus bootloader and with the reset pin
disabled. When reset is disabled you get an additional digital pin"

werde mal einen blink sketch oder ähnliches testen.

mt772:
Googlesagt: "Digispark ATtiny85 boards come with the Micronucleus bootloader and with the reset pin
disabled. When reset is disabled you get an additional digital pin"

werde mal einen blink sketch oder ähnliches testen.

Ok, das ist mal eine deutliche Aussage.
Leider stimmen die Aussagen nicht immer.

Dann sollte es funktionieren, auf das Testergebnis bin ich gespannt.

Edit:
Du hast die Pins mehrfach definiert. Sollte zwar hier kein Problem sein, ist aber sehr unübersichtlich.

bin noch Anfänger und ich habe den sketch mit ardublock erstellt. Das hier macht ja eigentlich keinen Sinn:

erst

void setup()
{
pinMode( 0, INPUT);
pinMode( 1, INPUT);
pinMode( 2, INPUT);
pinMode( 4, INPUT);
pinMode( 5, INPUT);

dann

pinMode( 3 , OUTPUT);
pinMode( 4 , OUTPUT);
pinMode( 5 , OUTPUT);

eigentlich sind

P0 - P2 DigIn 0 set / 1 rücksetzen / 2 arm
P3 - P5 DigOut 3 LED GN / 4 LED RT Flip / 5 LED RT Flop

raus kann eigentlich:

#define ledPin 5

#define buttonPin 0

int value = LOW;

Serial.begin(9600);

pinMode(ledPin, OUTPUT);

pinMode(buttonPin, INPUT);

digitalWrite(buttonPin, HIGH);

Ich werde mal schauen ob ich auf meinen Minitablet hier testen kann.

mt772:
bin noch Anfänger und ich habe den sketch mit ardublock erstellt. Das hier macht ja eigentlich keinen Sinn:

Ardublock kenne ich nicht, habe aber schon öfter gelesen, das da ziemlicher Mist erzeugt wird.

erst
void setup()
{
pinMode( 0, INPUT);
pinMode( 1, INPUT);
pinMode( 2, INPUT);
pinMode( 4, INPUT);
pinMode( 5, INPUT);
dann
pinMode( 3 , OUTPUT);
pinMode( 4 , OUTPUT);
pinMode( 5 , OUTPUT);

Hier reicht:

void setup()
{
  pinMode( 0, INPUT);
  pinMode( 1, INPUT);
  pinMode( 2, INPUT);
  pinMode( 3 , OUTPUT);
  pinMode( 4 , OUTPUT);
  pinMode( 5 , OUTPUT);
}

Die Inputs kannst du auch mit "INPUT_PULLUP" optimieren, dann braucht es keinen externen Pullup-Widerstand.

raus kann eigentlich:

#define ledPin 5

#define buttonPin 0

int value = LOW;

Serial.begin(9600);

pinMode(ledPin, OUTPUT);

pinMode(buttonPin, INPUT);

digitalWrite(buttonPin, HIGH);

Obiges kann entfallen.

ich habe es gestern hinbekommen.

Erst mal habe ich den Sketch gekürzt.

Jetzt habe ich nur noch das Problem, das der Attiny85 stoppt sobald ich P5 als Digital Output mit einer LED mit 560 Ohm Vorwiderstand belaste.

Mein Problem ist leider das ich drei Eingänge für die Taster und drei Ausgänge für die LEDs brauche.

Werde noch ein bisschen im Netz stöbern.

Dann nimm doch P5 mal als Eingang. Im Sketch definieren nicht vergessen.

dann muss ich mein Board ändern. :slight_smile:

werde ich aber mal testen.

mt772:
dann muss ich mein Board ändern. :slight_smile:

werde ich aber mal testen

Das ist aber besser als keine Funktion. :wink:

Leider hatte ich gestern nicht so viel Zeit wie gedacht,

aber es sieht für mich gerade so aus als wenn die internen PullUpWiderstände beim Digispark Attiny85 nicht verfügbar sind.

Habe mit 10K extern getestet und die digital in zumindest an den getesteten Ports funktionieren.

mt772:
aber es sieht für mich gerade so aus als wenn die internen PullUpWiderstände beim Digispark Attiny85 nicht verfügbar sind.

Du hast doch in deinem Sketch keine Pullups definiert.

Das muss dann so aussehen:

pinMode(0, INPUT_PULLUP);

hatte ich zwischenzeitlich, mit dem Nano hat es super funktioniert.