Go Down

Topic: pulseIn und analogWrite mögen sich nicht^^ (Read 460 times) previous topic - next topic

HotSystems

#30
Sep 20, 2019, 11:25 am Last Edit: Sep 20, 2019, 11:27 am by HotSystems
Bei dem Baustein handelt es sich um einen ULN2003A, mit dem High-Power-Led's über Masse angesteuert werden (also 7,4V, dann LED, dann Widerstand und dann in den Arduino/den Baustein. Dann gibt's noch einen Pin (10), der mit PWM über + eine weitere LED über Transistoren ansteuert. Und dann will ich eben noch mit 2 Pins zwei Kanäle der RC-Anlage am Empfänger (FRSky, X8R) auslesen.
Da "vergeudest" du reichlich Pins.
Nimm einen I2C-Expander (PCF8574, 8 Bit; oder MCP23017, 16 Bit) und dann den ULN2003A, du brauchst da nur die 2 I2C-Pins.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

skyfly71

"Vergeuden" ist gut :-D Wenn bei der Planung am Ende noch Pins übrig sind, dann muss man es mit I2C ja nicht komplizierter machen, wenn das gar nicht notwendig ist.^^ Und da die Schaltung fertig gelötet ist, weiche ich dann lieber auf ein zweites Bord aus, als jetzt noch mit I2C anzufangen (abgesehen davon, dass ich mich vor ca. 4 Jahren das letzte Mal damit beschäftigt habe...)

HotSystems

"Vergeuden" ist gut :-D Wenn bei der Planung am Ende noch Pins übrig sind, dann muss man es mit I2C ja nicht komplizierter machen, wenn das gar nicht notwendig ist.^^ Und da die Schaltung fertig gelötet ist, weiche ich dann lieber auf ein zweites Bord aus, als jetzt noch mit I2C anzufangen (abgesehen davon, dass ich mich vor ca. 4 Jahren das letzte Mal damit beschäftigt habe...)
Ok....allerdings kann man nie genug Pins haben. ;)
Und komplizierter ist es eigentlich nicht.
Auch wenn du manches mal was anderes liest. ;)

Und I2C ist doch deutlich flexibler, wenn es richtig eingesetzt wird.

Aber ok, wenn du so klar kommst ist es auch gut.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

MicroBahner

Wenn Du nun stattdessen einen 2. Controller 'vergeudest'  ;) , wie sillst Du die dann koppeln. Doch nicht etwa über I2C ...
Oder sollen/können Die dann komplett unabhängig voneinander sein?

Mir stellt sich aber immer noch die Frage, warum sich PWM und PusleIn bei Dir nicht mögen, denn eigentlich sollte das schon zusammen gehen. Nach der Ursache wurde ja nicht wirklich geforscht.
Gruß, Franz-Peter

MicroBahner

Und komplizierter ist es eigentlich nicht.
Auch wenn du manches mal was anderes liest. ;)
z.B. in deiner Signatur  ;) 
Gruß, Franz-Peter

HotSystems

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

skyfly71

Quote
wie sillst Du die dann koppeln. Doch nicht etwa über I2C
Ich bin eigentlich davon ausgegangen, dass das über 2 Digitalline geht.

postmaster-ino

Hi

Du kannst natürlich auch mit zwei normalen Pins z.B. per IR kommunizieren - wenn Du A4 und A5 frei bekommst, kannst Du den ganzen Kram aber wire überlassen.

Irgendwie musst Du ja Deine zwei Pins bespaßen und am anderen Ende muß Das auch verstanden werden - und Das in beide Richtungen.

Deine Entscheidung :)

MfG
anscheinend ist Es nicht erwünscht, einen Foren-internen Link als 'Homepage' einzubinden, damit JEDER nur einen Klick von combie's Liste zum Thema State-Maschine entfernt ist.
... dann eben nicht ...

MicroBahner

wenn Du A4 und A5 frei bekommst, kannst Du den ganzen Kram aber wire überlassen.
Womit wir dann wieder bei I2C wären  :D
Gruß, Franz-Peter

ElEspanol

Ich bin mir nicht sicher, ob man mit pulseIn zwei Empfängerausgänge zuverlässig einlesen kann. Soweit ich weiß, gibt der X6R das Servosignal mit 50 Hz aus, also alle 20ms. Bei jedem loop darauf zweimal zu warten, ist nicht das was du willst. Aber alle paar hundert ms einmal auf das pulseIn zu warten, sollte den Ablauf nicht merklich stören.

Wie wird das Signal weiterverwendet?

HotSystems

Ich bin eigentlich davon ausgegangen, dass das über 2 Digitalline geht.
Wenn du 2 digitale Pins meinst, ja das geht.
Du nimmst SoftwareSerial o.ä. und verwendest dafür 2 digitale Pins.

Praktischer wäre aber die Verwendung von I2C (A4 und A5) und könntest an die auch gleich einen Portexpander wie in Post #30 beschrieben, anschließen.
Das wäre doch praktisch, oder ?

Damit hättest du noch viele digitale Pins für weitere "Spielereien" frei.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

uwefed

Anstelle von I2C Portexpander kannst Du auch Schieberegister mit Leistungsausgängen wie zB den TPIC6A595 der gleich wie der 74HC595 in vielen Tutorials benutzt wird. der hat Open Drain Ausgänge (schalten auf Masse) die 350mA abkönnen. Brauchen zwar 3 Pin aber können Kaskadiert werden.

Klarstellung:
INT0 und INT1 liegen auf den Pins 2 und 3.
Pulsein() ist blockierend, gleich wie delay()
Der ULN2003 kann überall angeschlossen werden; auch an A0 bis A5, nicht aber an A6 und A7, die sind keine Digitalpins.

Ok, wenn Du die Schaltung bereits zusammengelötet hast ist die Sache etwas komplizierter bzw arbeitsintensiver etwas zu ändern.


Grüße Uwe

Go Up