Hilfe beim Programmieren

Moin Moin. Ich möchte mit meinem Arduino eine Kaltlichtdiagnose an meiner Roller verbauen. Der Microcontroller soll einaml die ganzen Leuchtmittel am Fahrzeug überprüfen ob diese i.O. sind oder nicht. Ist ein Leuchtmittel nicht i.O. soll mir das über eine LED angezeigt werden.

Der Arduino soll einfach nur für 100ms einen kurzen Impuls aussenden und schauen ob die Lampe High 5V oder Low 0V hat. Ich wollte dies alles über einen digitawrite und über High und Low programmieren. Ausserdem soll mein Pin 13 der Ausgang sein und pin 0-7 meine Eingänge.

Kann mir da wer weiter helfen?

Bei Fragen stehe ich natrülich bereit.

Vielen dank im vorraus

wie kommst du auf die 100ms?
spannungen an fahrzeugen, insbesondere rollern/zweirädern, sind keine stabilen spannungen, da muss schon vorher sich einiges einfallen lassen, damit man überhaupt für die steuerung eine stabile spannung hat.
vielleicht hilft dir das weiter Projektvorschlag: Bordcomputer / Kfz weiter unten im thread kommt irgendwo ein zip mit schaltplänen.

Bei Eingriff in die Fahrzeugelektrik erlischt die ABE!

mal allen einwänden zum trotz. gehen wir mal von einem roller aus, der in eurer schule in der werkstatt für solche zwecke zur verfügung steht und nicht im öffentlichen raum bewegt wird.

es stellt sich ja neben dem simplen gedanken, ich gehe von hier nach da und zurück, die frage nach einem konkreten schaltplan.
diesen solltest du mal sauber aufzeichnen, anhand dessen kann man dir hier ggfs. auch was weiteres sagen.

5V sind klar als TTL signal jederzeit abfragbar, bei analogen varianten musst du dann eben den ADC verwenden und ggfs. mit spannungsteilern und co arbeiten.

Wo hast du die Ohm werte her?

es gibt genügend sketche, welche das pollen und abfragen/setzen von einzelnen digitalen ports und auch den ADC erklären. da solltest du mal anfangen.

geschaltetes plus hört sich gut an, dann musst du aber sicherstellen, das der bediener auch genau 100ms braucht um über den ersten punkt zum zündvorgang zu kommen und deine schaltung abklemmen, sofern du keine sicherungsmaßnahmen ergreifen willst.

Hi, bei einer Kaltlichtdiagnose würde eine intakte Glühlampe den Anschluß nach Masse ziehen.
Ein Digitaler Eingang am Arduino würde hier ausreichen.

So in etwa, die Diode schützt den Arduino vor den 12V wenn das Licht eingeschaltet wird.
Der Widerstand zieht den Eingang auf 5Volt, wenn die Lampe in Ordung ist wird hier eine Spannung von ca. 0,7 V entstehen. .
Das ist logisch 0.
Wenn Lampe kaputt nahe 5V also logisch 1.

Vorschlag.png

rudirabbit:
Hi, bei einer Kaltlichtdiagnose würde eine intakte Glühlampe den Anschluß nach Masse ziehen.
Ein Digitaler Eingang am Arduino würde hier ausreichen.

So in etwa, die Diode schützt den Arduino vor den 12V wenn das Licht eingeschaltet wird.
Der Widerstand zieht den Eingang auf 5Volt, wenn die Lampe in Ordung ist wird hier eine Spannung von ca. 0,7 V entstehen. .
Das ist logisch 0.
Wenn Lampe kaputt nahe 5V also logisch 1.

....so wird es auch im KFZ Bereich gemacht....

wenn die Lampe in Ordung ist wird hier eine Spannung von ca. 0,7 V entstehen. .

... ausser die Lampe ist eingeschaltet. Dann sieht man 5V, egal ob sie kaputt ist oder nicht.

Das dürfte der schwierigere Teil der Logik sein, oder ?

michael_x:
... ausser die Lampe ist eingeschaltet. Dann sieht man 5V, egal ob sie kaputt ist oder nicht.

Das dürfte der schwierigere Teil der Logik sein, oder ?

Wie reden hier über die sog. Kaltlichtdiagnose also ohne Spannung.
Eine Beurteilung beim Betrieb, scheint mir mit mit dieser Methode nicht möglich zu sein.
Das ginge mit einer Stromessung z.b einem Shunt.

Ich erkenne in deiner Frage eher das du hier eine softwaremässigen Trick auf der Pfanne hast ?

Nein, eine echte Frage aus Interesse. Das mit dem pullup und der Diode ist schon einleuchtend.
Ich sehe das Problem eher darin, woher weiss der controller, wann es eine gute Gelegenheit für die "Kaltlichtdiagnose" ist?
Gibt es einen Zeitpunkt, wenn der Controller schon aktiv ist, aber noch keine Lampe an sein kann?
Muss man für jede Lampe zusätzlich messen, dass sie gerade aus sein sollte? ( Doppelte Anzahl Pins und min. doppelte Anzahl Bauteile ??? )

Wenn du erzählen könntest, wie das die Rabbit (Golf) Profis machen, oder wie es bei einem simplen Roller evtl. einfacher gehen könnte, würde ich mich freuen, was zu lernen.

Oder ist es für diesen Fall ausreichend (oder gar ein netter Testfall), dass ein Fehler diagnostiziert wird, wenn man erst Licht einschaltet und dann startet ?

Ich habe das so wie einen POST Test beim Einschlten des Rollers ( umdrehen des Schlüssels) vor dem Starten des Motors vertanden.

Um das 100% sicher zu machen müßten der Anlasser und andere Verbraucher bzw die Schalter/Relais für das Licht auch von der Kontrollelektronik gesteuert werden damit der POST richtig durchlaufen kann. Das ist dann ein riesiger Eingriff in die Bordelektronik.

Grüße Uwe

Im Auto läuft alles über ein sog. Bordnetzsteuergerät. Die Verbraucher werden nicht direkt geschaltet, sondern eben auch über dieses Bordnetzsteuergerät.
Dieses weiß dann natürlich wann was wie geschaltet ist.

Hier in diesem Fall wäre ein Test wie es Uwe vorschlägt sinnvoller.
Sonst wird der Aufwand zu groß.

du fängst am besten mal an, dir die befehle digitalwrite, digitalread, analogread und zu guter letzt das gute alte IF anzusehen.
sowohl hier im forum, in der reference als auch mit einer suchmaschine deiner wahl.
du wirst sehen, das werden nur wenige zeilen code.
dazu kommen dann ggfs. ausgabe via serial oder lcd (4 bit, 8 bit, i²c je nachdem was du an display hast).
das ganze sollte sich in 3,5 wochen schaffen lassen.

Wenn alles fertig ist, musst du auch noch den Bootloader auf dem Arduino rausschmeissen, dann ist der Test in wenigen Millisekunden nach dem Einschalten fertig.

Dazu brauchst du einen ISP Programmer. Das kann ein zweiter speziell programmierter Arduino oder sowas sein. ( Wobei die 3 Euro Dinger aus China nicht in 3 Wochen hier sein werden, und du einen 6poligen Stecker brauchst )

ok, wir warten dann auf code ...

Das Programmieren ist für mich einfach das schwierigste an der ganzen Sache und da ich von dem Arduino nicht mal 0,00001 % in irgendeiner Art und Weise bearbeitet habe ist das mein größtes Problem.

Du sagst es handelt sich um eine Facharbeit, hat der Aufgabensteller Programmierkenntnisse vorausgesetzt oder vorher welche vermittelt ?

Das scheint aber nichts Neues zu, neulich sollte BWL Student Daten von einem DHT11 auslesen und die Daten dann zu GroveStreams hochladen.
Der hatte noch nie was mit Info gemacht, da fragt man sich schon warum der Prof solche Aufgaben vergibt ?

naja, wenn ich sehe was uns damals in info/programmieren beigebracht wurde, warn witz.
vielleicht erhofft der ein oder andere auch fertigen code zu bekommen :wink:

FlyingEagle:
vielleicht erhofft der ein oder andere auch fertigen code zu bekommen :wink:

Klar wird das versucht, nur ich sehe das inzwischen anders.
Ein Infomatik Studie braucht die Unterstützung hier nicht wirklich.
Aber was soll ein BWL'er machen der keine Ahnung hat, dort ist "social engineering" wohl schon mit im Pflichtenheft.

[OT] mag sein, ist aber nicht mein oder unser problem hier. weder du noch ich haben bzw bekommen dadurch unseren master oder bachelor. und unter "engeneering" verstehe ich auch u.a. das man eine suchmaschine bedienen kann.
wenn probleme auftsauchen kann und sollte man helfen, aber nicht einfach so vorkauen ...
siehe meine posts, ich beiße mir da mittlerweile seit wochen die zähne aus, und finde keine lösungen oder jemanden der mir mal den weg weißen könnte ...
nur zur klarheit: was ich in den letzten 2 posts sagte, richtet sich nicht zwangsläufig gegen oder über den threadersteller!

nur zur klarheit: was ich in den letzten 2 posts sagte, richtet sich nicht zwangsläufig gegen oder über den threadersteller!

[OT]
Dito, dies gilt auch für meine Postings, meinte eher das Gegenteil.
Mir ging es eher um das Prinzip: Man kann von einem Schüler nicht was verlangen was der Lehrer nicht vermittelt hat.
Was sollen solche Aufgaben bezwecken, ein Test der Autodidakt Fähigkeiten ?

Moin Moin.

ixzibt:
Der Microcontroller soll einaml die ganzen Leuchtmittel am Fahrzeug überprüfen

Wir reden hier von altmodischen Glühbirnen?

ixzibt:
Rudirabbit so wie dein Schaltbild ausschaut war auch mein e Idee so ziemlich.

Da der Arduino einen eingebauten Pullup-Widerstand hat, der aktiviert werden kann, kann auf den externen möglicherweise verzichtet werden, zumindest bei meiner Glühbirne ist das so.

ixzibt:
Ich benötige insgesamgt nur ein Ausgang. Den Ausgang vervielfältig ich mal acht und von dort geht jedes Kabel über einen 1kOhm Widerstand zu der Plusleitung der Glühbirne. Von Dau aus dann wieder zurück über einen 10kOhm Widerstand und über eine Schutzdiode und an den Eingang.

Ein Ausgang für die LED reicht, dazu sieben Eingänge. Zumindest fällt mir kein Grund ein, es aufwändiger zu machen.

Da ich neugierig bin, habe ich mal einen Versuch gestartet. Anstelle des bei mir anderweitig verwendeten UNO habe ich einen ATtiny 4313 (2313 würde reichen) verwendet, macht dasselbe. Etwas faul habe ich nur vier Eingänge belegt, einen mit einer Glühbirne, die LED hat einen integrierten Widerstand. Und was wahrscheinlich kein Forumsmitglied erwartet hat, es geht! Anders gesagt, Du bist auf dem richtigen Weg! :grin:

Ich verwende IDE 1.5.8, da finde ich diese Einstiegsdroge: Datei/Beispiele/02.Digital/Button
Ersetze “pinMode(buttonPin, INPUT);” durch “pinMode(buttonPin, INPUT_PULLUP);” (siehe Beispiel Datei/Beispiele/02.Digital/DigitalInputPullup) und nimm statt des Tasters die Glühbirne. Die Programmlogik kannst Du zunächst ohne Glühbirne testen, indem Du die Eingänge mittels Kabel auf GND legst oder nicht. Viel Erfolg!