Ich hatte in der Vergangenheit über ein Projekt geschrieben, bei welchem ich mehrere Elektro/Magnetische "Mess-Sensoren" verbauen möchte.
Das ganze war über einen Arduino nicht zufriedenstellend.
Jetzt habe ich mir überlegt, mehrere kleine Attiny (z.B. Attiny85) zu nutzen, welche die Messungen extern machen und die Ergebnisse an den Haupt-Microcontroller schicken.
Ich benötige beim Messen lediglich einen analogen Eingang am Attiny. Hier wird eine Antenne angeschlossen und der analoge Eingang mit 3,6M/6,8M Ohm geerdet. Das was dort gemessen wird soll wie beschrieben, zum auswerten, an den Haupt-Arduino gesendet werden.
Natürlich noch mit einer kurzen Kennung, von welchem Attiny welcher Wert kommt.
Meine Frage wäre,
wie viele Attiny könnte man zusammen benutzen, welche die Daten seriell an den Arduino senden?
RX/TX (Seriellen Monitor) oder I2C?
Habe es mal mit 2 Arduinos und seriell getestet. Das ging
Und auf Grund der hohen Anzahl (40) - welchen Attiny könntet Ihr empfehlen
wenn man Umfang und die Kommunikation beachtet?
Der Attiny85 scheint gut zu passen und man kann diese wohl per TinyWire sprechen lassen. So ist mein aktueller Stand.
Rein seriell wird es nicht gehen.
Du brauchst dazu min. RS485 mit zugehörigen Adapter.
Bei I2C benötigst du am Arduino noch 40 Eingänge an die der Attiny85 seine Meldung "habe Daten" abgibt und der Arduino holt diese dann ab. Ob das dann auch mit 40 Clients sicher funktioniert, kann ich nicht sagen, da selbst noch nicht gebaut.
Dann muss die Kabellänge für den I2C-Bus noch berücksichtigt werden.
Die Kabellänge ist eher kurz. Maximal vielleicht 50cm.
Also alle an den RX/TX dranhängen und dann sendet jeder einfach seinen Wert geht nicht?
Alternativ hören alle mit und der Haupt-Arduino sendet zahlen von 1 bis 40 und wenn die richtige Zahl gelesen wird, dann sendet der passende Attiny seine Wert zurück.
Eigentlich reicht es, wenn die Attiny nur senden und eigentlich ist eine richtige Kommunikation nicht nötig also ein hin und her.
WAMBO:
Die Kabellänge ist eher kurz. Maximal vielleicht 50cm.
Also alle an den RX/TX dranhängen und dann sendet jeder einfach seinen Wert geht nicht?
Alternativ hören alle mit und der Haupt-Arduino sendet zahlen von 1 bis 40 und wenn die richtige Zahl gelesen wird, dann sendet der passende Attiny seine Wert zurück.
Eigentlich reicht es, wenn die Attiny nur senden und eigentlich ist eine richtige Kommunikation nicht nötig also ein hin und her.
Wenn alle durcheinander senden, bekommst du keine verwertbaren Daten raus.
Deine Alternative Lösung wird funktionieren. Das ist sicher die bessere Lösung.
Hatte ich auch auf dem Schirm, wusste nur nicht wie zeitkritisch es ist.
Also du meinst, dass ich alle 40 an den RX TX anschließen kann und dann so nacheinander über 1 - 40 vom Arduino die Werte vom jeweiligen Attiny abfragen kann?
Du hast sowas auch schon ausprobiert?
Mit einem Attiny?
Da jeder ATtiny85 seine eigene Adresse bekommen muss, sollte das funktionieren.
Wie schon geschrieben, ich habe es noch nicht selbst getestet.
Bisher habe ich max. 6 I2C Clients angesprochen und das hat funktioniert.
Was du beachten musst, beider Anzahl auch die richtigen Pullup Widerstände verwenden.
Da wird es wohl wichtig sein, mit einem Oszi das Signal zu kontrollieren.
Bau den Kram doch erst Mal mit ARDUINOs auf - wenn der Testaufbau - sagen wir 4x4 Sensoren - funktioniert, kann man darüber nachdenken, den Kaufpreis des Sensor-Punkt abzusenken - eben auf einen ATtiny zu wechseln.
VORHER würde ich mir Das noch nicht antun wollen - auch läuft auf einem ATtiny nicht der ganze 'Funktionsumfang des Arduino' - aber zum Testen, WIE Das funktionieren kann, wäre mein Weg Uno/Nano.
Portieren kann man, wenn man was Funktionierendes vorweisen kann.
Nur des Wegschmeißen Willens mit ATtiny's um sich werfen halte ich für 'keine gute Idee' (Jurassic Park).
MfG
Edit Auch frage ich mich, was beim ATtiny 'besser' werden soll, was der Uno/Nano derzeit macht.
postmaster-ino: Edit Auch frage ich mich, was beim ATtiny 'besser' werden soll, was der Uno/Nano derzeit macht.
Ist doch eindeutig, da er bedingt durch die Gehäusegröße, weniger Platz einnimmt.
Mal abgesehen von den Atmega328 in SMD, die aber nicht von allen verarbeitet werden können.
Also ich habe es mit einem Arduino versucht um dort über eine Matrix von 6x7 ein Ergebnis zu bekommen. Also das ich ein Raster baue und überall dort wo es sich überschneidet ist ein Punkt.
Die Werte sind leider nicht identisch wie wenn ich nur einen analogen Eingang nutze. Ohne dass ich alle analogen Eingänge, die nicht benötige, deaktiviere (Wert auf LOW schreibe oder den PinMode auf Ausgang stelle), funktioniert es gar nicht. Überall werden so wirre Werte gemessen.
Auch über einen Multiplexer klappt es nicht.
Schreibe ich es so:
pinMode(A0,INPUT);
pinMode(A1,OUTPUT);
pinMode(A2,OUTPUT);
pinMode(A3,OUTPUT);
Nur A0 wird gemessen <<
Dann "geht es" jedoch sind die Werte viel kleiner die gemessen werden können.
Danach habe ich es über die serielle RX/TX Schnittstelle mit 2 Arduino Pro Micro getestet und da eine, zum testen, 4x4 Matrix eingerichtet. Die Kommunikation klappt, also die Werte werden ordentlich von einem zum anderen gesendet, jedoch sind die Werte genau so "anders/kleiner" wie bei einem Gerät wo ich alle analogen Eingänge nutze und das ganze mit der Matrix schmeckt mir nicht auf Grund des großen Sensorfeldes was ich dadurch bekomme.
An den Attiny habe ich gedacht, da er recht günstig ist im vergleich zu einem Arduino Mini oder so - wenn ich 40 davon benötige. Zusätzlich sind diese auch deutlich stromsparender als ein alternativer z.B. Nano. Das ganze Gebilde soll am Ende nämlich mit einem Akku/9V Block betrieben werden.
Ich könnte natürlich mal mehrere Arduino nutzen und die verbinden und das Prinzip ausprobieren jedoch auf Grund der Anzahl benötige ich halt 40 Stück. Selbst ein Teensy 2 hat mir nicht geholfen.
Allgemein hat es mit nur einem Kontroller beim UNO, Pro Mini / Micro oder Nano nicht geklappt. Darum halt die Idee es mit 2 zu versuchen bzw. jetzt mit 40 als Sensor-Daten Sende-Einheit ONLY.
Am liebsten hätte ich gerne 40 einzelne günstige und stromsparende Messeinheiten die nur den Wert allgemein oder auf Anfrage Senden. Dazu benötige ich je nur einen analogen Eingang am Gerät und der Controller muss diesen Senden können.
Wahrscheinlich wird es der günstigste Weg werden, viele per I²C erreichbare ADC zu bekommen.
Bei den üblichen Arduino-Sensoren wären mir nur 4-Kanal-ADC aufgefallen - hier wird wohl ebenfalls ein Umschalter enthalten sein, also wohl nur Einer wirklich davon nutzbar (oder mit mehr Zwischenzeit?).
Beim ATtiny (oder anderem µC) hast Du halt den Vorteil, daß Du Dem eine beliebige I²C-ID aufstempeln kannst - Das ist bei käuflichen Sensoren eher nicht der Fall - oder müsste bei jedem Reset neu geschehen.
WAMBO:
Ich habe mal geguckt und der 85 scheint am besten geeignet dafür zu sein UND wenn ich dem Internet glauben darf, funktioniert I2C mit dem ATtiny85.
Hast du da Erfahrungen mit also I2C, ATtiny85 etc?
Ja, Erfahrungen werden hier auch genügend beschrieben.
ATtiny85 und I2C funktioniert.
Einfach mal hier im Forum suchen.
Hier wird eine Antenne angeschlossen und der analoge Eingang mit 3,6M/6,8M Ohm geerdet. Das was dort gemessen wird soll wie beschrieben, zum auswerten, an den Haupt-Arduino gesendet werden.
Das hört sich für mich wie grober Unfug an.
Als wolltest du das "Nyquist Shannon Abtasttheorem" ignorieren.
In den Wind schlagen....
Das ist mir gelinde gesagt: Scheißegal!
Ich bin nicht hier, um geliebt zu werden.
Auch nicht, damit sich andere geliebt fühlen.
Dafür erkläre ich mich als: Nicht zuständig.
Zu dem beschriebenen/zitiertem Aufbau kann ich nur sagen:
... von Vorteil ist's schon, wenn man weiß, auf welcher Seite der Lötkolben heiß wird ... oder hier, was die lustigen Zahlen aussagen, wenn man mit den Prüfspitzen in der Schaltung rumstochert.
@TO Hattest Du den Pin auf 'Mitte' gezogen? Ganz wichtig: GEZOGEN - nicht per Draht mit einem Potential verbinden, da eine Seite ein aktiver Ausgang sein kann und Dieser so lange Seine Arbeit verrichtet, bis Er stirbt! Bis auf OC/OD Ausgängen ist's eh 'keine gute Idee', Ausgänge direkt miteinander zu verschalten - eine Fehl-Schaltung und diese Ausgänge arbeiten gegeneinander - bis Einer stirbt.
MfG Edit
Threads durcheinander geworfen ... wie Tommy56 in #21 schreibt, ist der SPI-Thread 'ganz woanders'
Das Nyquist Shannon Abtasttheorem ist mir bekant. Das Mess-Grundprinzip funktioniert sehr gut also wenn nur ein analoger Eingang benutzt wird und ich möchte ja kein analoges Signal im Sinne von Audio-Digitalisierung speichern / sampeln oder verstehe ich gerade den Zusammenhang nicht?