Show Posts
Pages: 1 ... 10 11 [12] 13 14
166  International / Deutsch / Re: Temperatur sensor on: March 14, 2011, 02:55:06 pm

kann man diesen "Thermistor" mit dem Arduino verbinden und die Temperatur ablesen?
http://www.watterott.com/de/100k-Thermistor

Kann man. Ein Thermistor ist ein temperaturabhängiger Widerstand. Mit einem Thermistor und zweiten Widerstand baut man einen Spannungsteiler. Die am Spannungsteiler abgegriffene Spannung (verändert sich mit der Temperatur) wird auf einen Analogeingang des Arduino gelegt. Mit den Spannungswerten beispielsweise bei 0 Grad (Eiswasser) und 100 Grad (kochendes Wasser) und ein bisschen Mathematik kann man dann mit einem Programm aus der jeweiligen Spannung die Temperatur berechnen. Bei höheren Genauigkeitsanforderungen ist etwas mehr Aufwand erforderlich.

Zum Ablesen/Anzeigen muss man dann noch eine 7-Segment-Anzeige oder ein LCD basteln/kaufen und an den Arduino anschließen und ein wenig Programm schreiben. Grundlegende Beispiele hierfür findest du bestimmt auf den Arduino Webseiten.

Falls notwendig, hier was zum Nachlesen:
Spannungsteiler: http://de.wikipedia.org/wiki/Spannungsteiler
Thermistor: http://de.wikipedia.org/wiki/Thermistor

Gruß
Wolfgang
167  Using Arduino / Installation & Troubleshooting / Re: Can't upload Mega 2560 from Windows Vista laptop to Arduino on: March 14, 2011, 04:50:59 am
core.a(main.cpp.o): In function `main':
C:\Users\Wassojj\Downloads\arduino-0021\hardware\arduino\cores\arduino/main.cpp:7: undefined reference to `setup'
C:\Users\Wassojj\Downloads\arduino-0021\hardware\arduino\cores\arduino/main.cpp:10: undefined reference to `loop'

It seems as if you are trying to verify/upload an empty sketch. An empty sketch does not contain a setup() or loop() function.
Please select one of the example sketches e.g. File->Examples->Basics->BareMinimum and try again.

Additonally, as mentioned before, you should use version 022 of the arduino software to avoid other possible problems.

Good luck
Wolfgang
168  International / Deutsch / Re: Auslieferungszustand on: March 13, 2011, 12:29:23 pm
Edit: Ups, ich glaube, ich habe zu langsam getippt! cpixip war schneller. Aber sind wir nicht hilfsbereit...

wird das Arduino-Board mit dem Programm eeprom_clear in den Auslieferungszustand zurückversetzt?
Oder wie wird das gemacht?


Nöh, das Programm löscht nur den EEPROM-Bereich des Microcontrollers, der normalerweise zum Speichern von Daten auch nach Abschalten der Spannungsversorgung verwendet wird (so man ihn überhaupt verwendet).

Was ist für dich der "Auslieferungszustand"? Mein Arduino wurde mit dem vorinstallierten BLINK-Programm ausgeliefert. Das kannst du natürlich über die Arduino-IDE in den ATMega-Chip übertragen. Dann hast du den Auslieferungszustand.

Oder wenn's noch weniger sein soll, kannst du stattdessen das BareMinimum-Programm aus den Arduino-Examples->Basics verwenden. Das tut garnichts (keine Ausgänge setzen, o.ä.)

Und wenn alles weg sein soll inklusive Bootloader (= von vorne bis hinten nur FF im Flash-Speicher) musst du mit einem Hardware-Programmer auf den Controller losgehen. Aber dass muss nun wirklich nicht sein ;-)

Wolfgang
169  International / Deutsch / Re: 8 Potis und 8 Schalter, reicht ein Ardunio Uno? on: March 13, 2011, 05:12:02 am
Danke :-) Die Funktion war klar - mir gings eher um die Beschaltung im SInne von "direkt dran" oder "irgendwelche Widerstände etc" :-) Offenbar "direkt dran" :-)

Hallo,

"direkt dran" ist OK. Die Steuereingänge des CD4051 sind extrem hochohmig und stellen keine Last für die Ausgänge des Arduino dar. Und die Pegel vom Arduino passen auch.

Evtl. (zeitweise) nicht benutzte Analog-Eingänge des 4051 (also Eingänge, an die garnichts angeschlossen ist) sollte man über einen hochohmigen Widerstand auf Masse legen, damit man nicht irgendwelchen "Schrott" von diesem offenen Eingang einliest.

Und der Inhibit-Eingang auf Pin 6 muss natürlich fest auf "0" liegen, sonst schaltet nichts durch. Ausgang Pin3 des 4051 kann direkt mit dem gewünschten Analogeingang des Arduino verbunden werden.

Wolfgang
170  International / Deutsch / Re: Bootloader; Ein unbekanntes wesen?! on: March 08, 2011, 05:55:13 am
um den Code unlöschbar zu machen, oder auch das Auslesen des Codes zu verhindern, kann man die sogenannten Fuse-Bits des Atmegas setzen, einige davon sind extra für diesen Zweck. Das geht so viel ich weiss, nicht aus der Software, du benötigst dafür einen Programmieradapter, z.B. einen zweiten Arduino. Geht dabei was schief, kannst Du den Atmega der Tonne beifügen  smiley-cry

Hallo,

kleine Korrektur: für den Schutz vor Umprogrammieren oder Auslesen des Flashs sind die "Brüder" der Fuse-Bits zuständig, die Lock-Bits.
Die gibt es jeweils für den eigentlichen Programm-Bereich und für den Bootloader-Bereich.

Wenn sie einmal gesetzt sind (d.h auf 0), können sie nicht mehr einfach zurückgesetzt werden. Das geht nur noch über das komplette Löschen des Chips. Auf diese Art kann man die Sperre von Umprogrammieren und Auslesen umgehen, hat aber nix gewonnen, weil das Programm auch futsch ist. Oder doch... Man hat den ATMega vor der Tonne gerettet.

Näheres dazu im Atmel-Datenbuch zum 2560 u.a. im Kapitel 29 Memory Programming:
http://www.atmel.com/dyn/resources/prod_documents/doc2549.pdf

Eine sicheren Schreibschutz gibt es meines Wissens nicht. Mit einem Programmierer kann man den Chip jedenfalls löschen, wenn man unbedingt Böses vorhat.

[Edit]
Kleiner Nachtrag: ich bin gerade mit meinem AVRISP mkII-Programmer auf die Lockbits losgegangen und habe sie umprogrammiert. Beim Versuch sie wieder zurückzusetzen, gibt es eine Fehlermeldung, und den Hinweis, ich möge doch bitte den Chip löschen. Ausprobiert, stimmt. Danach sind die Lock-Bits wieder im Grundzustand. Also Aussage von oben bestätigt!

Gruß
Wolfgang

171  International / Deutsch / Re: Bootloader; Ein unbekanntes wesen?! on: March 07, 2011, 07:30:15 am
ich wüsste gerne mal, welche Aufgabe der Bootloader auf dem Arduino hat, ob es ein Bauteil ist oder nur ein Softwarecode und wo dieser Sitzt.

Hallo,

der Bootloader dient dazu, das von dir geschriebene Programm ohne Benutzung eines gesonderten Hardware-Programmierers (AVRISP, STK500 und diverse andere) in den Flash-Speicher des ATMega zu "brennen".

Ist kein getrenntes Bauteil sondern ein Stück Software, das im hinteren Adressbereich des Flashs "wohnt". Der Bootloader-Code wird hinten im Flash-Speicher ausgeführt und schreibt gleichzeitig vorne das neue Programme in den Flash. Wenn er damit fertig ist wird das Programm "vorne" gestartet.

Weitere Infos hier:
 http://www.mikrocontroller.net/articles/AVR_Bootloader_in_C_-_eine_einfache_Anleitung
oder über Google leicht zu finden.

Wolfgang
172  International / Deutsch / Re: Mega 2560 Treiber Propleme on: March 03, 2011, 10:14:34 am
Hallo microller,

eine etwas "konventionellere" Rechtschreibung und Satzbildung würde uns das Verständnis für dein Problem schon erleichtern...

Gruß
Wolfgang
173  International / Deutsch / Re: Arduinio Mega mit Analogen In´s erweitern on: March 03, 2011, 04:16:39 am
@da Hool

Nur so ein Hinweis:

der 4051 ist, wie schon von anderen erwähnt, nur eine Art Umschalter für die Anlalogwerte.

Da muss du vom Programm aus erst einen Eingang anwählen, dann wird der Analogwert auf den Analogeingang des Arduino geschaltet, dann musst du im Programm den Analogwert auslesen, dann im Programm den nächsten Eingang am 4051 anwählen, im Programm den Analogwert auslesen, dann im Programm den nächsten Eingang am 4051 anwählen...

Der 4051 sendet also nix von allein und über I2C sowieso nicht. Deswegen ist er ja auch so preiswert.
Das Geschwindigkeit  ist ganz sicher nicht ein Problem des 4051. Der schaltet wie der Teufel um (unter 1 Microsekunde), sondern die Geschwindigkeit der AD-Wandlung im Controller spielt da eher eine Rolle. Aber diese Zeit brauchst du bei jedem Lesen eines Analogwertes über den Arduino, egal ob mit oder ohne Umschalter vor dem Analogeingang. Vielleicht weiss ja jemand, wie lange ein Aufruf der Funktion analogRead() dauert.

Gruß
Wolfgang
174  International / Deutsch / Re: Arduino Bootloader on: February 26, 2011, 01:13:06 pm
Das der Bootloader sich am Ende des Speichers befindet ist allerdings sehr interessant !
Vorallendingen auch eine sehr wichtige Information, was sich auch auf den Sprung des Arduinos zu Bootloader Anfang bezieht.

Ich denke, ich habe die Informationen richtig im Datenbuch des Controllers verstanden, aber das stimmt ja auch mit meiner Inspektion des Flash-Inhaltes überein. Ist übrigens ganz interessant, mal das Intel-Hex-File zu analysieren. Für manche Leute jedenfalls.

Wenn ich vorher gegoogelt hätte, hätte ich die Grundlagen auch hier gefunden:
http://www.mikrocontroller.net/articles/AVR_Bootloader_in_C_-_eine_einfache_Anleitung
Aber so habe ich selbst was gelernt...

Wolfgang


175  International / Deutsch / Re: Arduino Bootloader on: February 26, 2011, 12:45:26 pm

Quote
2) Sind die Arduino Sketche Arduino Bootloader abhängig ?
Sind die Sketche auch auf einem IC lauffähig der keinen Bottloader hat ?
Wenn ich eine Hex-Datei eines Sketches mit der AVRISP per ISP übertrage dann wird doch ein eventuell vorhandener Arduino Bootloader überschrieben oder ?
Der Bootloader ist ausschließlich für das Übertragen der Sketche zuständig, diese sind somit auch ohne Bootloader lauffähig.
Wenn die Sketche per ISP übertragen werden wird der Bootloader überschrieben.

Hallo zusammen,

das Thema hat mich auch interessiert und ich habe den Flash-Speicher meines Arduino Mega 2560 mit dem avrisp mal ausgelesen. Die Adressen liegen bei anderen Arduinos höchstwahrscheinlich anders.

Folgende Erkenntnisse bei mir:

1. eigentliches Programm liegt ab Adresse  0 bis ungefähr 3000 dez.
2. Bootloader-Code beginnt bei mir ab (Wort)Adresse 1F000 hex (also 4096 Worte vor Ende)
3. In den Fuses des ATMega ist Fuse BOOTRST gesetzt (also 0) und die BOOTSZ Fuses für Größe und Adresse des Bootloaders sind auch entsprechend gesetzt. Das ist die Standardeinstellung bei meinem Arduino Mega 2560 Board.
Durch diese Fuses springt der Controller bei einem Reset zuerst nicht nach Adresse 0 sondern nach 1F000 auf den Beginn des Bootloader-Codes.

Daher schließe ich mal folgendes:
Wenn ich mit dem ISP nur das Programm in den Controller lade, wird der Bootloader erst einmal nicht überschrieben, außer wenn das eigentliche Programm aufgrund seiner Größe auch die letzten 2K/4K des Flashs benötigt. Der ISP beschreibt ja nur die Speicheradressen entsprechen dem Intel-HEX-File.
Beim Flashen eines Bootloaders nimmt der ISP aus dem Intel-HEX-File die Adresse 1F000 (bei Mega 2560) und schreibt den Bootloader dorthin (vereinfacht ausgedrückt, weil Intel-Hex eigentlich nur bis 64K adressieren kann und daher die 'Extended Segment Address Records' als Offset ins Spiel kommen).

Außerdem sollte man die Fuse BOOTRST zurücksetzen, wenn man ohne Bootloader arbeiten will (oder muss, weil man ihn aufgrund des Speicherbedarfs überschrieben hat). Sonst geht es bei einem Reset nicht bei Adresse 0 los, sondern da wo der Controller einen Bootloader vermutet (der aber möglicherweise nicht mehr da ist).

Wenn irgendetwas von meinen Meinungen nicht stimmen sollte, bitte gerne korrigieren.

Edit: Wenn man den Sketch über die IDE übertragen will, muss man möglicherweise noch 'atmega328.upload.maximum_size=30720' in der 'Boards'-Datei anpassen/vergrößern, weil die IDE das als obere Grenze für den Sketch ansehen könnte (um den Bootloader vor dem Überschreiben zu schützen).

Genaueres hierzu kann ich leider nicht sagen, da ich fast nur mit dem AVR Studio arbeite.

Gruß
Wolfgang




176  International / Deutsch / Re: Kann vom Arduino Uno "zu viel" Strom gezogen werden? on: February 25, 2011, 09:47:37 am
Vielleicht währe hier der ULN2803 nützlich:

EIGHT DARLINGTONS WITH COMMON EMITTERS
OUTPUT CURRENT TO 500 mA
OUTPUT VOLTAGE TO 50 V

Aber Achtung!

Der ULN2803 ist zwar nett zu den Ausgängen des Arduino, aber wenn panzerdampf die 5V für den Verbraucher vom Arduino-Board nimmt (wie in seinem Eingangsposting angegeben), mag das das Board wahrscheinlich nicht und der USB-Port auch nicht (egal, ob mit oder ohne ULN2803). Also sicherheitshalber eine externe Spannungsversorgung für den angeschlossenen Verbraucher verwenden (wie uwefed schon vorgeschlagen hat). Zumal panzerdampf wohl einen Motor ansteuern will, der ja wahrscheinlich mehr als nur paar mA zieht. Außerdem hätte ich persönlich bei einem Gleichstrom-(Kollektor-)Motor an den 5V vom USB-Port des PCs doch so meine Bedenken (Störungen des PCs über die Spannungsversorgung).

Meiner Meinung nach ruft übrigens die von panzerdampf angesprochenen H-Brücke nach einem L293D. Dann kann er seine geheimnisvollen unbekannten NPN-Transistoren auch vergessen  smiley-wink
Dazu dürfte es ja hier im Forum und auch sonst über google einiges an Unterstützung zum Nachlesen  geben.

Viel Erfolg
Wolfgang

177  International / Deutsch / Re: Marktplace on: February 16, 2011, 01:35:25 pm
Guten Abend zusammen,

kann mir bitte jemand sagen, wie ich meine Anzeige korrigieren kann, wenn ich beim Formulieren etwas dusselig war?

Ändern geht ja absichtlich nicht, löschen und neu aufgeben kann ich anscheinend auch nicht. Muss die Menschheit jetzt mit dem  leben, was ich geschrieben habe?

Übrigens, ist es Absicht, dass ich ganz ohne irgendwelche Anmeldung in die "Anzeigenannahme" gekommen bin? Is it a bug or a feature?

EDIT: Kann das sein, weil ich auf den Link in Reply #16 mit einer Session-ID geklickt habe?

Gruß
Wolfgang
178  International / Deutsch / Re: main.c aufruf aus dem ordner ".../cores/arduino" on: February 15, 2011, 12:12:25 pm
Mir geht es sicherlich ähnlich wie funkheld, indem ich mit den Möglichkeiten, die die Arduino-IDE zur Verfügung stellt, nicht immer zufrieden bin.

Aber hier steht es jedem frei, auf eine andere IDE wie AVR Studio mit AVR-GCC umzusteigen und damit sein C-Programm zu erstellen. Dort hat man (fast) alle Freiheiten und Einflussmöglichkeiten, die man sich wünscht und mit ein bisschen Anpassung kann man auch die Arduino-Funktionen aufrufen (wenn man sie nicht total hasst). Oder notfalls aber eben selber für AVR-GCC und die AVR-GCC-Libraries (um)schreiben.

Und dann das Ganze aus AVR Studio per AVRDUDE (mit Bootloader oder Hardware-Programmer) auf das Arduino-Board laden. Die Arduino-Hardware läuft ja problemlos auch mit Programmen, die mit dem AVR Studio erstellt wurden.

So mach ich's persönlich und lass die Arduino-IDE denen, für die sie gedacht ist.
Und ich glaube, diese Vorgehensweise wäre auch für funkheld und seine Anforderungen das günstigste.

Gruß
Wolfgang
179  International / Deutsch / Re: main.c aufruf aus dem ordner ".../cores/arduino" on: February 15, 2011, 08:07:54 am
Quote
Ich weiss ja nicht, warum du an der init.c rumfummeln willst?

die enthält für meine vorhaben unnütze bremsklötze, die ich beseitigen will.
gruss

Nur zur Vermeidung von Verwirrung: Wir sprechen ja wohl beide von wiring.c, nicht von init.c, das so zwischendurch mal auftauchte. Und in wiring.c steckt die Funktion init(), die du aber garnicht anpacken musst, wenn du z.B. SIGNAL durch ISR ersetzen willst.
180  International / Deutsch / Re: main.c aufruf aus dem ordner ".../cores/arduino" on: February 15, 2011, 07:31:24 am
dan werde ich die init .c ändern, wenn die hauptsächliche mit dem timer rumplänkelt.

Ich weiss ja nicht, warum du an der wiring.c rumfummeln willst? Eigene Initialisierungen kannst du ja gut in setup() unterbringen. Wird doch in main.cpp direkt hinter init() aufgerufen.

Außer natürlich, dir gefällt absolut nicht, was in init() ausgeführt wird und du möchtest das wegwerfen. Aber dann musst du dir natürlich der Konsequenzen bewusst sein!

Oder sonst kannst du in deinem Sketch eine Funktion myInit() schreiben, die deine eigenen Initialisierungen enthält. Dann den Aufruf von myInit() in main.cpp vor oder hinter dem Aufruf von init() einfügen und in der Datei wiring.h einen Funktionsprototypen für myInit() einfügen (z.B. hinter den Funktionsprototypen für setup() und loop() ).

Pages: 1 ... 10 11 [12] 13 14