DigiSpark Störströme DigitalInput

Hallo, ich habe einen Arduino nano an meine Carrerabahn angeschlossen, um das Datensignal auszulesen. Klappte wunderbar. Aber der nano war mir zu groß.
Deshalb versuche ich mich mit einem Attiny85 auf einem DigiSpark Board, habe aber auf dem digitalen Eingang nur noch Rauschen, sobald ich mit der Carrerabahn verbinde.
DigitalRead generell funktioniert!

#include <SendOnlySoftwareSerial.h>
SendOnlySoftwareSerial SoftwareSerial(4); // No RX, just TX

#include "PinChangeInterrupt.h"

// Choose a valid PinChangeInterrupt pin of your Arduino board
#define pinBlink PB2
volatile byte value = 0;

void setup() {
  // set pin to input with a pullup, led to output
  pinMode(pinBlink, INPUT_PULLUP);
  pinMode(LED_BUILTIN, OUTPUT);

  // Manually blink once to test if LED is functional
  blinkLed();
  delay(1000);
  blinkLed();

  // Attach the new PinChangeInterrupt and enable event function below
  attachPCINT(digitalPinToPCINT(pinBlink), blinkLed, CHANGE);
  SoftwareSerial.begin(9600);
}

void blinkLed(void) {
  value = digitalRead(pinBlink);
  SoftwareSerial.print("value:" );
  SoftwareSerial.println(value);
  // Switch Led state
  digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}

void loop() {
  // Nothing to do here
}

Hat jemand eine Idee, wie ich an ein sauberes und störungsfreies Signal komme?
Danke für Eure Hilfe!

Bitte verwenden Sie in den englischen Bereichen des Forums die englische Sprache. Ihr Thema wurde in den deutschen Bereich des Forums verschoben.

Da würde ich den Pullup-Widerstand durch parallel schalten eines externen Widerstandes verkleinern.

Und warum machst du das über einen Interrupt?
Da reicht es sicher eine Abfrage in der Loop.

Ist einer der USB Pins.

Sicher ?
Die Schaltbilder die ich kenne, da ist USB PB3 und PB4,

1 Like

Ohhh!
Du hast wahr.

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