Hallo Gemeinde,
ich komme gerade nicht so recht weiter.
Ich habe mir folgende Schaltung gekauft.
http://www.ebay.de/itm/161194580527?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649
Aus Platzgründen habe ich mich für das kleine Fertige entschieden.
Ich kriege das Teil aber nicht zum Laufen.
PC erkennt es als Arduino Leonardo.
Jetzt ist die Frage mit welchem Programm kann ich den Code brennen?
Hat jemand evtl. den richtigen Code für mich da?
Ich brauche nur eine einfache Entprellung.
Wenn Taster gedrückt soll auch ein Ausgang "an" gehen. Der Rest kann
Ignoriert werden.
Vielen Dank
-Daniel
Hallo,
> Daniel Q. schrieb:> Jetzt ist die Frage mit welchem Programm kann ich den Code brennen?
entweder Arduino IDE
oder mit original Bootloader und http://www.atmel.com/tools/flip.aspx
Um aber den original Bootlader auf den Atmega zu bekommen bräuchtest du
einen Brenner(z.B. AVRISP mkII).
Gruß G.G.
Hallo und Guten Morgen, den Arduino IDE 1.0.5 r2 habe ich jetzt
Installiert.
Worin bestehen die Vor- bzw. Nachteile von Arduino und Atmel Bootloader?
Ich habe mich mal etwas Schlau gelesen. Im Forum stehen mehrere
Varianten zum entprellen.
http://www.mikrocontroller.net/articles/Entprellung#Softwareentprellung
Die Frage ist nur welche für mein Vorhaben am Sinnvollsten ist.
Gruß Daniel
Daniel Q. schrieb:> Hat jemand evtl. den richtigen Code für mich da?
Hausaufgaben müssen selber gemacht werden. Sonst lernt man nichts...
> Ich brauche nur eine einfache Entprellung.> Wenn Taster gedrückt soll auch ein Ausgang "an" gehen.
Wozu soll bei dieser simplen Aufgabe der Taster entprellt werden?
Lies einfach den Taster-Pin ein und gib ihn auf dem LED-Pin wieder aus.
Daniel Q. schrieb:> Die Frage ist nur welche für mein Vorhaben am Sinnvollsten ist.
Ich würde das an deiner Stelle einfach mal ausprobieren! Das Gute
daran ist: Man lernt dabei.
> Die Frage ist nur welche für mein Vorhaben am Sinnvollsten ist.
Woher soll irgendwer wissen, was dein "Vorhaben" ist?
Servus Daniel,
ich denke mir die ganze Zeit: "Jung wat hast du vor?". Wir reden doch
hier vom entprellen. Also allgemein funktioniert das so:
1. Timer initialisieren
2. Pin intialisieren und auf Event warten
3. Bei Auftreten des gewünschten Events, Timer starten
4. Bei Ablauf des Timers schauen ob der Pin immer noch dem gewünschten
Zustand entspricht. Je nach Zustand kannst du dann ja darauf reagieren.
Beste Grüße
public
public schrieb:> Also allgemein funktioniert das so:
Hach.
Wenn man für jeden Pin einen Timer verwalten muss, dann wirds aber
schnell umständlich...
Dank Peter Danneggers genialem "Massive Parallel Counter Code" (;-)
entprelle ich z.B. ein 32er Orgelpedal mit gerade mal 8 Byte.
Hallo und vielen Dank für die Anteorten.
Ich habe hier eine MosFet Motor Schaltung und einen stark Prellenden
Taster.
Die MosFet Schaltung hat ein MosFet als Bremse verbaut. Drückt man den
Taster dreht sich der Motor. Lässt man den Taster los, bremst das zweite
Fet den Motor.
Und mit dem Prellenden Taster ist das ein Problem. Da habe ich mir
gedacht yC dazwischen, Entprellung rein und fertig.
Irgendwann soll das mal erweitert werden, bzw. Ausgebaut. Taster kann
auch leider nicht getauscht werden.
Gruss Daniel
Daniel schrieb:> Und mit dem Prellenden Taster ist das ein Problem. Da habe ich mir> gedacht yC dazwischen, Entprellung rein und fertig.
Da geht aber auch ein RC-Glied + 74HC14, 74HC132 oder 74HC4093. Oder
wenn es mit mehr als 5V betrieben werden soll CD4093.
Gruß Dietrich
Dietrich L. schrieb:> Da geht aber auch ein RC-Glied
Ja klar, bei 32kB Flash machen 30 gesparte Bytes ja auch enorm viel aus.
Da lohnt sich das Layouten und Löten zusätzlicher Komponenten so
richtig.
Peter Dannegger schrieb:> Dietrich L. schrieb:>> Da geht aber auch ein RC-Glied>> Ja klar, bei 32kB Flash machen 30 gesparte Bytes ja auch enorm viel aus.> Da lohnt sich das Layouten und Löten zusätzlicher Komponenten so> richtig.
Ich kann dir da nicht einmal widersprechen, denn €6.50 sind ein
Argument, gegen das man nur schwer ankommt. Da spielt es dann auch keine
Rolle mehr, dass ein 32U4 für diese Aufgabe Perlen vor die Säue
bedeutet.
Die einzige Variable ist es, wie lange es dauert, bis er das Programm
fertig und in den µC gebrannt hat. Da könnte unter Umständen Layout und
Löten eines klassischen Entprellers für ein Einzelstück effizienter
sein.
Nur damit wir vom selben reden. Wenn er die 30 Bytes 'einspart', dann
ist sein Flash-Verbrauch bei 0. Der ganze Arduino fällt weg. Seine
einzige AUfgabe ist es, einen einzigen Taster zu entprellen :-)
Karl Heinz schrieb:> Da spielt es dann auch keine> Rolle mehr, dass ein 32U4 für diese Aufgabe Perlen vor die Säue> bedeutet.
Woher weißt Du das?
Er will doch noch weitere Sachen hinein programmieren:
Daniel schrieb:> Irgendwann soll das mal erweitert werden, bzw. Ausgebaut.
Peter Dannegger schrieb:> Dietrich L. schrieb:>> Da geht aber auch ein RC-Glied>> Ja klar, bei 32kB Flash machen 30 gesparte Bytes ja auch enorm viel aus.> Da lohnt sich das Layouten und Löten zusätzlicher Komponenten so> richtig.
Darum geht es nicht. Wenn Daniel nur den Taster entprellen will (mehr
hat er in seiner Beschreibung nicht gewollt), kann es sich den ganzen
Arduino + Programmierung sparen und braucht auch keinen Brenner.
Wenn er allerdings den µC für andere Dinge sowieso braucht, hast Du
natürlich recht. Dann würde ich mein RC-Glied auch nicht empfehlen.
Gruß Dietrich
Peter Dannegger schrieb:> Karl Heinz schrieb:>> Da spielt es dann auch keine>> Rolle mehr, dass ein 32U4 für diese Aufgabe Perlen vor die Säue>> bedeutet.>> Woher weißt Du das?
Posting von heute (23.1) um 09:17
(Ich kann leider keinen Link setzen, da ich hinter einem WebProxy sitze)
> Er will doch noch weitere Sachen hinein programmieren:
Ja, irgendwann
Peter Dannegger schrieb:> Daniel schrieb:>> Irgendwann soll das mal erweitert werden, bzw. Ausgebaut.
OK, dann nehme ich meinen Vorschlag mit dem RC-Glied zurück ;-)
Hallo und vielen Dank für die ganzen Beiträge und hinweise.
Ich weiß das der 32U4 etwas zu "groß" ist. Ich werde bestimmt nicht
alles brauchen was der kann. Und auch nicht ausnutzen.
Aber klein und Günstig. Das war das ausschlaggebende.
Ich habe das jetzt alles auf meinem Steckbrett so aufgebaut.
Leider Funktioniert es nicht.
Ich habe jetzt so gemacht wie es dort steht.
1
constintbuttonPin=2;// the number of the pushbutton pin
2
constintledPin=13;// the number of the LED pin[avrasm]
Daniel Q. schrieb:> Ich habe jetzt so gemacht wie es dort steht.
Wie es wo steht.
Da wurden immerhin 2 Links gepostet
>>
1
>constintbuttonPin=2;// the number of the pushbutton pin
2
>constintledPin=13;// the number of the LED pin[avrasm]
3
>
>> Ich habe den Code Kompiliert und aufgespielt.
Das kann aber nicht alles sein.
Zeig den ganzen Code!
Und zwar nicht wie er irgendwo auf einer Webseite steht, sonder so wie
du ihn bei dir compilierst und brennst.
Hast du eigentlich schon einen ersten Funktionstest mit deinem Arduino
gemacht. Ganz simpel eine LED einschalten, ausschalten?
>>constintbuttonPin=2;// the number of the pushbutton pin
2
>>constintledPin=13;// the number of the LED pin[avrasm]
3
>>
>> Ich habe den Code Kompiliert und aufgespielt.>> Das kann aber nicht alles sein.> Zeig den ganzen Code!
Das war auch nur als Ausschnitt gedacht.
Habe jetzt gesehen, das ich aus versehen den A3 als Ausgang genommen
hatte. Welchen wert muss ich da denn jetzt eintragen?
> Und zwar nicht wie er irgendwo auf einer Webseite steht, sonder so wie> du ihn bei dir compilierst und brennst.
Ich habe das alles eingefügt und dann Kompilieren und hochladen
gedrückt.
http://arduino.cc/en/Tutorial/Debounce?action=sourceblock&num=1> Hast du eigentlich schon einen ersten Funktionstest mit deinem Arduino> gemacht. Ganz simpel eine LED einschalten, ausschalten?
Nein.
Hallo, ich habe mich heute mal etwas genauer mit dem Thema auseinander
gesetzt.
Mein Code.
1
// set pin numbers:
2
const int buttonPin = 14; // the number of the pushbutton pin
3
const int ledPin = 15; // the number of the LED pin
4
5
// Variables will change:
6
int ledState = HIGH; // the current state of the output pin
7
int buttonState; // the current reading from the input pin
8
int lastButtonState = LOW; // the previous reading from the input pin
9
10
// the following variables are long's because the time, measured in miliseconds,
11
// will quickly become a bigger number than can be stored in an int.
12
long lastDebounceTime = 0; // the last time the output pin was toggled
13
long debounceDelay = 50; // the debounce time; increase if the output flickers
14
15
void setup() {
16
pinMode(buttonPin, INPUT);
17
pinMode(ledPin, OUTPUT);
18
19
// set initial LED state
20
digitalWrite(ledPin, ledState);
21
}
22
23
void loop() {
24
// read the state of the switch into a local variable:
25
int reading = digitalRead(buttonPin);
26
27
// check to see if you just pressed the button
28
// (i.e. the input went from LOW to HIGH), and you've waited
29
// long enough since the last press to ignore any noise:
30
31
// If the switch changed, due to noise or pressing:
32
if (reading != lastButtonState) {
33
// reset the debouncing timer
34
lastDebounceTime = millis();
35
}
36
37
if ((millis() - lastDebounceTime) > debounceDelay) {
38
// whatever the reading is at, it's been there for longer
39
// than the debounce delay, so take it as the actual current state:
40
41
// if the button state has changed:
42
if (reading != buttonState) {
43
buttonState = reading;
44
45
// only toggle the LED if the new button state is HIGH
46
if (buttonState == HIGH) {
47
ledState = !ledState;
48
}
49
}
50
}
51
52
// set the LED:
53
digitalWrite(ledPin, ledState);
54
55
// save the reading. Next time through the loop,
56
// it'll be the lastButtonState:
57
lastButtonState = reading;
58
}
Ich habe es so wie in dem Tut (
http://www.arduino.cc/en/Tutorial/Debounce) beschrieben erst mal auf ein
Steckbrett gesteckt.
Soweit funktioniert alles. Allerdings ist mir aufgefallen das ich die
LED wie mit einem Schalter schalte. Was muss man ändern damit ich sie
nur Taste?
Daniel Q. schrieb:> Soweit funktioniert alles. Allerdings ist mir aufgefallen das ich die> LED wie mit einem Schalter schalte.
Das ist doch perfekt. Schliesslich hast Du am Anfang geschrieben:
Daniel Q. schrieb:> Wenn Taster gedrückt soll auch ein Ausgang "an" gehen.
wendelsberg
wendelsberg schrieb:> Daniel Q. schrieb:> Das ist doch perfekt. Schliesslich hast Du am Anfang geschrieben:>> Daniel Q. schrieb:>> Wenn Taster gedrückt soll auch ein Ausgang "an" gehen.>> wendelsberg
Da habe ich mich dann etwas Unglücklich ausgedrückt. Der Ausgang soll
auch nur so lange "an" sein wie der Taster gedrückt ist.
Daniel Q. schrieb:> Das kann dann raus oder?
Exakt.
Etwas zu machen SOLANGE eine Taste gedrückt wird, ist leicht. Du liest
den Tastenzustand ein und bist ... fertig. Je nachdem kann es sein, dass
man noch eine kleine Entprellung braucht, damit die paar Preller im
Millisekundenraster nicht dafür sorgen, dass das Licht zb 3 mal kurz im
Millisekundenbereich flackert (was ein Lichtsensor durchaus feststellen
könnte), oder dass ein Motor nicht mit einem 3 maligem 'Stotterer'
anläuft (was er nicht tun wird, denn dazu ist er zu träge). Aber
abgesehen davon ist die grundlegende Strategie: einfach einlesen.
Schwieriger ist es, etwas beim Niederdrücken einer Taste nur ein
einziges mal zu machen. Denn jetzt wirkt sich das mögliche Prellen aus.
Für den µC ist Tastenprellen nicht von "mein Benutzer hat die Taste 3
mal schnell hintereinander gedrückt" grundsätzlich zu unterscheiden. Nur
das für den µC das eine in Zeitlupe passiert und das andere in
Superzeitlupe. Und genau da ist dann auch der Entprellansatz: 'Drückt
der Benutzer die Taste zu schnell, dann war das kein Benutzer, der an
der Taste rumgefummelt hat, sondern der Taster hat geprellt'.
Guten Abend,
> Ich habe mir folgende Schaltung gekauft.> Ebay-Artikel Nr. 161194580527
ist das nur bei mir oder steht dort ernsthaft 106 Euro pro Stück?!
_.-=: MFG :=-._