Go Down

Topic: Arduino mit mehreren funktionen. (Read 787 times) previous topic - next topic

tsaG

Hallo!

Ich habe hier einen Arduino der 4 Relais schalten soll. Dies geschiet erst einmal durch die Schalter und andererseits durch Signale welche über den IR Port empfangen werden. Als dritte funktion sollen noch Kommandos über I2C an Port 4 und 5 versandt werden.

Das wäre ja quasi Multitasking da über den Sensor abgehört wird während er auf Signale von den Tastern wartet.
Ist das ganze Möglich? Oder wie relaisiert man das ganze besser? Theoretisch müsste man alles über Interrupts machen jedoch hat der Atmega8 ja nur zwei (welche schon vom das I2C benutzt werden)

hier noch ein Schaltplan.


michael_x

Quote
Das wäre ja quasi Multitasking da über den Sensor abgehört wird während er auf Signale von den Tastern wartet.


loop()
{
  ///...
}
sollte so geschrieben sein, dass es schnell fertig ist, und somit oft aufgerufen wird.
--> Kein delay() !!!
loop()  "wartet" also nicht wirklich, sondern sammelt nur Informationen, um den aktuellen Zustand zu kennen, und merkt sich eventuell den Zeitpunkt, wann etwas passiert ist, um zu wissen wann lange genug "gewartet" wurde.


volvodani

Du unterschätz die Geschwidnigkeit des Controllers mit 16Mhz.
Ich habe hier einen Code (8k) incl. I2C RTC der hat ne durchlaufzeit von 600-700µs.
Wenn du ,wie mein Vorredner schon sagte keine Delays benutzt, dann "schaut" dein Controller ca 1000 mal pro 1s nach ob was an den digitalen Eingängen passiert. Und das du dann da etwas gleichzeitig hast bzw das Signal von den Tastern zu kurz ist um das zu sehen ist mehr als unwahrscheinlich. Der AVR ist sogar so schnell das er das prellen der Taster "sieht".
So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

tsaG

Ah, Okay. Wenn ich es also wie in diesem Beispiel Beispiel ohne delay mache, sollte es funktionieren?

Wenn ich es mit mehreren (3) Chips mache (2 Senden (button und IR) und einer stellt ein) muss ich es mit diesem Multimaster sketch machen, oder?  Damit kann ich mir ja quasi ein Netzwerk aus Arduinos bauen welches die benötigten Sachen umsetzt.

Zusätzlich werde ich dann die Schalter noch mit einem RC Glied entprellen

Go Up