Show Posts
Pages: [1]
1  International / Deutsch / Re: UNO Spannungsregler kaputt on: February 01, 2014, 01:26:57 pm
Hier http://ruggedcircuits.com/html/ancp01.html sind 10 Möglichkeiten einen Arduino kaputt zu machen erklärt.
2  Using Arduino / Networking, Protocols, and Devices / Re: Slave/Slave communication on: November 23, 2013, 07:09:11 am
At the moment I have a similar project. I would prefere a Solution with dominant/recessive bits (like CAN Buses). The problem I have is that Serial and also SoftwareSerial doesen't read back the bits they send. But, if I have understand how CAN works, this is how to detect if any one else has started a message at the same time.

Is there a library for arduino that implemements a lightwight CAN-like protocol?

For hardware I found these modules  10pcx TJA1050 CAN communication module drive interface module / High Speed CAN Transceiver . I ordered some but until now they didn't arrive.

Thankyou for your help
3  International / Deutsch / Re: BetweenLoop - Event on: December 04, 2012, 01:30:29 pm
Quote
Bist du neidisch,
JAAAAAAAAAAAAAAAAAAAAA smiley-mad smiley-mad smiley-mad smiley-mad smiley-mad smiley-mad war das erste was ich dachte, Der Mann versteht mich!

Aber jetzt, ein paar Minuten später? Nein - nicht neidisch sondern entrüstet über so viel Egoismus.

Wie sagt Massimo? build it, hack it and share it, bacause Arduino is you.

Also ab mit dem Gedanken in den großen Ideenkochtopf und schau mer mal was die nächsten Versionen bringen.

4  International / Deutsch / Re: BetweenLoop - Event on: December 04, 2012, 07:47:53 am
Erstmal danke für eure Antworten.

In Bezug auf den Programmablauf gebe ich jurs erstmal recht. Konkret war ich auf der Suche nach einer simplen Möglichkeit zu sehen was mein Programm gerade tut. Serial ist vom Optokoppler belegt der mit meiner Heizung spricht. LCD hatte ich bestellt, ist aber noch nicht da (von China dauert das eben). Also Blinkzeichen per LED - angelehnt an das BlinkWithoutDelay Beispiel. Die ersten 2 LED - naja kein schöner Code aber geht erstmal. Bei Nummer 5 von den 8 vorhandenen war das dann so unübersichtlich das ich das in eine kleine Lib ausgelagert habe. Als minibeispiel sieht der Aufruf jetzt so aus:
Code:
#include <LEDTimer.h>
LEDTimer step1(13);

void setup() {
}

void loop() {
  step1.doEvents(); 

  Wenn irgendwas dann:   step1.blinkBegin( 1000, 500, 10); //Blinke 10 mal abwechselnd 1000 dann 500 ms

}
Bleiben also noch die überflüssigen Aufrufe von doEvents aus dem Usercode wegzuoptimieren. Und optimal wäre es natürlich wenn sich das nach dem letzten blinken wieder deregistriert.

zweites Beispiel: Serial
main() macht bei jedem Durchlauf der Hauptschleife das folgende:
Code:
if (serialEventRun) serialEventRun();
Das nenne ich einen "bösen Hack". Warum kann es sich nicht mit Serial.begin registrieren?
Der User hat hier auch keine Kontrolle. Braucht er sie? Nö! Der der Serial entwickelt hat, hat entschieden das das eben ab und zu gemacht werden muß. Aber es ist eigentlich Aufgabe der Lib dafür zu sorgen das es ausgeführt wird. Vom core würde ich nur einen Mechanismus erwarten der das (allgemein für alle die Libs die diese Funktionalität brauchen) ermöglicht.

drittes Beispiel: Ethernet
Keines der Beispiele verwendet Ethernet.maintain() auch wenn einige DHCP nutzen. Nach einigem suchen habe ich gelesen man kann es ruhig in jedem loop aufrufen. Warum gibt man dan nicht der Lib die Möglichkeit das zu tun? Wird sonst eh vergessen - macht aber irgendwann Probleme.

@mkl0815:
Die Idee mit der Klasse ist eine gute (Not-) Lösung. Das werde ich wohl auch erstmal so machen.

Ich gebe Dir Recht:
Quote
der User hat weniger Kontrolle darüber wann bestimmte Aktionen durchgeführt werden sollen
ABER: Braucht er die? (Siehe Serial)

Quote
zum Anderen kann die Lib ja nie wissen wie lange ein loop() Durchlauf dauert und ob das immer gleich lang ist.
ABER: Ob das schlecht oder egal ist, muß der Entwickler der Lib entscheiden. Bis jetzt kann er aber nichtmal beeinflussen ob seine Funktion überhaupt aufgerufen wird.

Ich hoffe ich konnte meine Überlegungen ungefähr rüber bringen.
5  International / Deutsch / BetweenLoop - Event on: December 04, 2012, 05:04:17 am
Hallo,

ich beschäftige mich noch nicht lange mit Arduino, habe mir aber z.B. schon viele Beispiele angeschaut und eine eigene Lib gebastelt, die einen Timer und eine LED kombiniert - nichts kompliziertes. Mich stört, das ich in meinem Sketch für viele Libs irgendwelchen Code in jedem loop aufrufen muß. Also ich meine nicht das er aufgerufen wird, sondern das ich es tun muß.

Das fast gute Beispiel ist Serial. Da steckt der Aufruf direkt in void main() - der Anwender muß sich nicht darum kümmern.

Ich würde mir ein BetweenLoop - Event wünschen, für das sich eine Library subscriben kann. z.B. als einfache verkettete Liste aus Funktionszeigern. Die Lib definiert eine Funktion, und fügt mit der Initialisierung einen Zeiger darauf an die Liste an.

Gibt's sowas evl. schon? Was haltet Ihr von der Idee? Oder wie handhabt Ihr sowas?

Viele Grüße
Pages: [1]