Digital PIN besser nutzen

Hallo miteinander,

bisher habe ich die Digitalen PINS am Uno und Mega immer nur mit HIGH bzw. LOW benutzt.

Ich würde gerne einen Fehler über einen Digitalen PIN ausgeben so das ein Anderes Arduino den Fehler erkennt und dann nach dem Fehlercode schauen kann was das ist und entsprechend reagieren kann.

dazu dachte ich mir das Arduino "UNO" z.B. über einen Digitalen PIN "00001" ausgeben kann
oder "00010" oder "00011"

Das andere Arduino kann dann die Fehlermeldung aufnehmen und könnte dann drauf reagieren.

meine Frage ist nun, gibt es da einen Befehl mit dem ich so was machen kann?
oder muss ich mir für die Fehlerausgabe eine Extra Funktion schreiben?

Des weiteren ist auch interessant für mich ob es einen Befehl gibt den "Fehler Code" dann einzulesen am anderen Arduino oder muss ich mir dann auch eine extra Funktion schreiben? dafür?

Dachte das so ähnlich wie bei den Schieblehre.

Gruß
Mücke

Du möchtest eine serielle Schnittstelle bauen.
Löblich.

Alternativ:
Der typische Arduino hat meist schon drei serielle Schnittstellen eingebaut.
SPI, I2C und eine Uart.

Und es gibt ja noch Softserial.....

Mehr als HIGH und LOW können die Pins auch nicht.

"Ich würde gerne einen Fehler über einen Digitalen PIN ausgeben so das ein Anderes Arduino den Fehler erkennt und dann nach dem Fehlercode schauen kann was das ist und entsprechend reagieren kann."
Für sowas gibt es Hardwareschnittstellen (SPI, I2C, UART) oder Softwareschnittstellen, welche auf 1 Drahtbasis sogar laufen können.

Schreibe dir notfalls deine eigene Funktion.
Kannst dich an der Funktionsweise von WS2812B orientieren. Mit unterschiedlichen HIGH und LOW Zeiten, jenachdem ob eine 1 oder 0 übertragen werden soll.

Ziel ist es das UNO Später durch einen "Attiny" zu ersetzen.

Ok, wenn die Digitalen Pins nicht mehr können, dann Hmm, .. sch....

So in die Richtung dachte ich mir das:

Mit unterschiedlichen HIGH und LOW Zeiten, jenachdem ob eine 1 oder 0 übertragen werden soll.

z.B.

1. Start --> HIGH --> 0,001s

2.       --> LOW  --> 0,000001s    (Trenzeichen)
3. 1     --> HIGH --> 0,0001s  

4.       --> LOW  --> 0,000001s    (Trenzeichen)
5. 0     --> HIGH --> 0,0002s  

6.       --> LOW  --> 0,000001s    (Trenzeichen)
7. 1     --> HIGH --> 0,0001s  

8.       --> LOW  --> 0,000001s    (Trenzeichen)

Oder welche Zeiten wären denn da angebracht?

Auch die Tinies haben einen universellen seriellen Port.

Und wenn du das unbedingt selber bauen willst, dann orientiere dich an den bekannten Protokollen.
Wie gesagt: Löblich, aber ein Irrweg.

Hmm, das muss ich mir noch mal genauer anschauen, wenn der ATtiny4313 so was hat, dann will ich das nicht selber machen, dachte nur das das der einfachere weg ist. über so einen Digitalen PIN.

Der Attiny4313 ist soweit bekannt pinkompatibel zum Attiny2313. Sowas sollte man auch im DB finden. Der hat eine HardwareUART Schnittstelle. Warum soll es umbedingt ein Attiny2313 sein? Wenn der im DIP Gehäuse herkommt, nimmt der mehr Platz weg als ein ProMini.

da ich inzwischen 5 von den Attiny4313 hier liegen habe.
und ich auch mal mit so einem Attiny was machen wollte.

an den ProMini habe ich garniert gedacht, denn kann man
wahrscheinlich auch einfacher programmieren als den
Attiny4313.

Ja, weil er durchgehend von allen Libarys unterstützt wird. Wenn man keine HardwareSchnittstellen zur Kommunikation zur Verfügung hat, sollte man sich den nächst größeren Controller suchen. Es macht, auch wenn möglich, wenig Sinn auf Attinys eine SoftSerial oder SoftI2C laufen zu lassen. Es gibt genügend, auch keine Attinys (Attiny841 (Pinkompatibel mit dem 84, aber mit mehr Funktionen)), die ebenfalls eine oder mehrere Hardware Schnittstellen mit sich bringen.

Hmm, das ist gut zu wissen.

jetzt muss ich erst mal mit dem Attiny4313 zurecht kommen, wenn die dann aufgebraucht sind such einen neuen Controller denn ich Quellen kann :slight_smile:

ich werde das aber im Hinterkopf behalten. (Hoffe ich)

hi, mücke,

Du hast da die gleiche krankheit wie viele (unter anderem ich).

"warum soll ich einen 328er verwenden, wenn er doch garnicht notwendig ist ???"

die antwort ist leicht: WEIL ER AUCH NICHT MEHR KOSTET !!!

die 328er sind die meistverwendeten, und wenn Du nicht ein platzproblem hast, nimm sie. von großserien , um die es hier ja nicht geht, abgesehen, ist die kostenersparnis marginal, und der ärger steht nicht im verhältnis.

beispiel: ich nehm atmega8 statt atmega328, weil der "hat ja kaum was zu tun". tagelang ärger, weil's nicht geht, bis ich draufkomm', daß der nicht, wie der 328er, mit 3,3V arbeiten kann. kostenersparnis für 3 heizungssteuerungen € 1,50. ( 1 mega328 € 1,5, 1 mega8 € 1,0).

was mach ich depp? bestelle mir gestern gleich mal atmega8L, weil die mit 3,3V funktionieren, statt daß ich gleich 328er nehm'. na hoffentlich gibt's da nicht die nächsten probleme.

was ich damit sagen will, ist nicht, daß andere chips "schlechter" sind, aber es ist halt alles auf 328er zugeschnitten und viel besser dokumentiert.
die ersparnis steht in keinem verhältnis...

aber wie gesagt, ich bin ja auch nicht anders. nur das mit den tinies tu ich mir nicht an, ich hab' zwar einige herumliegen, aber wie ich dann gemerkt hab', daß die keine hardware-schnittstellen haben, waren sie für mich gestorben.

gruß stefan

Sehr gut geantwortet Stefan! Den Beitrag kann man unter fast jedem Beitrag setzen, bei dem ein Anfänger Probleme mit den Attinys hat.

In avr-gcc, wo man bei weitem nicht solche Komfortfunktionen hat, ist das ggf. wieder etwas anders. Dort schreibt man die meisten Libarys selber, weil es einfach kaum welche gibt, und die die es gibt sind nicht immer optimal.

Da muss man sich dann doch näher ins Datenblatt einlesen, ohne gehts nicht. Setze selber hauptsächlich die Attiny841 ein. Hab da mal beim Großhändler ~100Stk bestellt. Mit den Registern komm ich inzwischen ganz gut klar, besser als mit den Atmega8, Atmega328. Nachteil ist aber, dass der AVR relativ neu ist. Pullups werden inzwischen nicht mehr nur mit dem setzen von einem Pin erledigt. Es gibt getrennte Register dafür-

Öm, ihr seit mir etwas zu schnell,

was ist denn der 328er ist das z.B. der proMini?

zu welcher reihe gehört denn der Attiny4313??

Was ich mir bei der Auswahl gedacht habe.
--> ich möchte mit dem Arduino meinen Motor Steuern, und meine Endschalter überwachen, jedoch möchte ich meine Endschalter nicht über das Arduino überwachen mit dem ich den Motor anspreche, aus Sicherheitsgründen (ja der Arduino hat noch viel Platz und kann das ohne Probleme übernehmen, möchte ich aber nicht) daher dachte ich mir dafür dann ein Extra Arduino für abzustellen ist etwas viel, .. und etwas teuer, so ein Attiny kostet nicht viel und könnte die Überwachung und das eventuelle abschalten des Motors übernehmen. Gesagt getan, ... --> Hier <--
und dazu wollte ich schon die ganze zeit mal mit so einem Attiny was machen, hatte aber keine Ahnung was ich damit machen könnte. Jetzt habe ich was :-).

an ein proMini habe ich nicht gedacht, das muss ich zugeben.
für so einen proMini kann man dann ein mal so einen USB Adapter sich besorgen, dann kann man das wahrscheinlich direkt über die IDE sogar beschreiben.

Das nächste mal ist ein proMini an der reihe.

Mücke,

du musst dir auch mal die Produktdeteils anschauen. Der ProMini ist ein Atmega328P, jedoch mit 2 zusätzlichen Analogen Pins (die gibt es in der DIP Version nicht). Da brauchste deine Sketche nicht für anpassen. Lediglich die USB Schnittstelle hat er nicht, dafür der rote Adapter.

Eisebaer:
Du hast da die gleiche krankheit wie viele (unter anderem ich).

Danke für diesen Satz!

Viele Hobbys sind sowieso unvernünftig, da kommt es auf etwas "Krankheit" auch nicht mehr an. Ich liebe die blinkenden LEDs an den ATtinys, habe mir jetzt aber auch mal einen Mini bestellt, der hat direkt USB und 5V.

ATtiny 4313 funktioniert bei mir mit I2C, habe da ja ein LC-Diplay dran.

habe mir jetzt aber auch mal einen Mini bestellt, der hat direkt USB und 5V.

Micro? Nano?
Oder doch Mini?
Mini mit USB?
(Fragen über Fragen)

Du hast da die gleiche krankheit wie viele (unter anderem ich).

OK ....

@Muecke
Ich habs mir anders überlegt!
Muecke, bau du dein eigenes Protokoll!
Der Lerneffekt kann richtig groß sein.
Und vielleicht kommt ja wirklich ein geniales Protokoll dabei rum.
Das will ich nicht verpassen.

combie:
@Muecke
Ich habs mir anders überlegt!
Muecke, bau du dein eigenes Protokoll!
Der Lerneffekt kann richtig groß sein.
Und vielleicht kommt ja wirklich ein geniales Protokoll dabei rum.
Das will ich nicht verpassen.

ne ne, der Rest ist schon schwer genug für mich, da muss ich das Rad nicht noch mal erfinden.
wenn ich das richtig sehe:


ATtiny4313.jpg

dann hat mein "ATtiny4313" eine Serielle Schnittstelle an PIN (DP 0 & PD 1)

Ich glaube das macht die Sache deutlich einfacher.

hi,

Viele Hobbys sind sowieso unvernünftig, da kommt es auf etwas "Krankheit" auch nicht mehr an.

natürlich nicht, soll ja auch spaß machen. und jeder, der abenteuerlustig genug ist, soll ruhig tinies verwenden.
was ich meinte, war, daß es keinen sinn macht, aus spargründen von den 328ern wegzugehen. ist kaum billiger und macht viel arbeit...

gruß stefan

combie:
Micro? Nano?
Oder doch Mini?
Mini mit USB?

Stimmt, es ist ein Micro.

I2C:
PB7 = SCL
PB5 = SDA

@Stefan: Keinerlei Widerspruch!

Der Micro ist aber wieder genauso ungeeignet, der ist überhaupt nicht. I2C auf dem Attiny wird aber kein Master sein. Sodass du vermutlich auch hier wieder alles in Software erledigen musst.