in welcher Richtung brauchst du denn Unterstützung?
Reine C/C++ Programmierung oder Elektronik und Programmierung im Zusammenhang mit Arduino?
Ersteres was agmue empfielt.
Zweiteres vielleicht http://www.oreilly.de/catalog/elekarduinobas2ger/
Ich habe davon das Vorgängerbuch. Ich kam damit klar für den Einstieg. Auch wenn man sicherlich nicht alle Bsp. nachbaut, hilft es für das Verständnis. Das perfekte Buch gibts sowieso nicht.
Also ich hatte vor 14 Jahren mal eine Ausbildung zum Fachinformatiker erfolgreich absolviert.
Da lernte ich Grundlagen in C++.
Hab mich danach noch 1-2 Jahre weiter etwas reinprobiert mit mäßigem erfolg.
Dann ein Job Frau Familie und keine Zeit mehr.
Jetzt kommt die Zeit wieder und das C++ ist natürlich rostiger wie je zuvor,
wobei mir vieles wenn ich mir die Beispiele ansehen sehr vertraut vorkommt.
Daher währe mir eine Referenz die mir die Arduinospezifischen Befehle in C erläutert ganz recht.
Als Buch für C++ habe ich hier das ISBN 3-446-21723-1
Die CD dazu liegt mir allerdings nicht mehr vor.
Das hier währe doch denke ich was
Als Compiler ist ja die Arduinoplatform nun das hoffentlich neue Zuhause.
Ich habe mir bereits einen Mega 2048 R3 bestellt.
Von früheren Basteleien sind noch einige Bauteile vorhanden.
(Wiederstände, Trasistoren, Mosfets, LED's, Laiserdioden, Potis, Prototypsteckplatten, usw.)
Nach diesen Büchern "Kochbuch Arduino". Das ist ein gutes Buch, aber nur mit Vorkenntnissen zu verstehen.
Eine Referenz der arduinospezifischen Funktionen findest Du unter Arduino - Home . Weitere Funktionen werden durch die verwendeten Bibliotheken definiert und darum mußt Du diese in den mitgelieferten Beisoielen und teilweise durch ansehen der Files verstehen. Da diese Bibliotheken nur teilweise von Arduino stammen kann diese Seite sie nicht erklähren.
Vorweg. In der Arduino IDE kannst du natürlich jederzeit klassisch C/C++ programmieren. Die Arduino'schen Komfortbefehle sind nur ein zusätzlicher Aufsatz obendrauf. Damit man es leichter hat. Man muß ja nicht unbedingt jeden Pin und Port direkt mit seinem Register ansprechen, wie man es sonst machen müßte. Falls man das doch einmal machen sollte oder muß oder rein aus Neugier, haste hier eine schöne Übersicht. Oder eben das µC Datenblatt.
http://www.pighixxx.com oben Pinpouts > Boards , dann blättert man durch und kann das als pdf runterladen.
Wendel:
Der Taster ist mit 10k Ohm gegen Grund auf LOW gesetzt.
Ähh, ich denke das passt schon mal nicht.
Aktiviere den internen Pullup und schalte den Taster gegen GND, also dass auf aktive LOW geprüft wird.
Spart nen Widerstand, invertiert aber die Logik. Macht aber nix
Hab es so umgeschrieben,
da ich die "Arduino Playground - Bounce" Lib eingehängt habe.
Aber bin mir nicht sicher,
da es noch immer nicht funktioniert,
ob nicht noch was anderes falsch ist.
Schau dir die Beispiele aus der Bounce Lib an. Du verwendest die völlig falsch. Was bringt es dir update() zu machen, wenn du letztlich doch nur digitalRead() verwendest? Da kannst du die Lib auch gleich weglassen
void loop()
{
bouncer.update();
int value = bouncer.read();
digitalWrite(LedPin, value);
}
Ich glaub das ist mein Ende ich verstehe es einfach nicht.
Ich hab mit dem Englisch meine Probleme finde keine Lib die Irgendwas erklärt?!? auf der Webseite steht ja nur:
Change the creation of the object
from:
Bounce bouncer = Bounce(inputPin, 5);
to :
Bounce bouncer = Bounce();
Initialize the object in setup
from :
*not required with the previous version
to (inside setup) :
// Setup the button
pinMode( inputPin ,INPUT);
// Activate internal pull-up (optional)
digitalWrite( inputPin ,HIGH);
// After setting up the button, setup the object
bouncer .attach( inputPin );
bouncer .interval(5);
Der Fehler muss auch wo anders sein selbst wenn ich delay(10000); einfüge bleibt die LED 10 Sec an und geht dann aus also am Taster liegt es nicht.
In jeder guten Library sind Beispiele dabei. Auch hier. Dafür hat doch die IDE einen extra Menüpunkt unter Datei -> Beispiele
Erst ruft man ständig update() auf, damit das Objekt intern seinen Zustand aktualisiert. Die Methode liefert außerdem zurück ob sich der Zustand geändert hat. Das könnte man noch abfragen, aber das ist nicht immer zwingend nötig.
Den Zustand kann man dann mit drei Methoden abfragen
read();
fell();
rose();
read() liefert den Zustand zurück. fell() liefert zurück ob man eine fallende Flanke hat. Und rose() ob es eine steigende Flanke war.
Mir ist aufgefallen,
dass ein Druck auf den Taster das Programm immer wieder über sich laufen lässt.
Einen 50er delay sorgt bei ein mal drücken für mehr maliges kurzes blinken.