Show Posts
Pages: 1 [2] 3 4 ... 20
16  International / Deutsch / Ankündigung: Arduino Basics (Elektronik-Stammtisch im attraktor/ Hamburg) on: March 08, 2013, 12:02:32 pm
Die Begeisterung für die Arduino-Plattform reißt nicht ab. Beim
monatlichen Elektronik-Stammtisch des Makerspace attraktor in Hamburg
(http://www.attraktor.org) steht deswegen am Montag, den 1. April das
Entwicklungsboard im Mittelpunkt. Beginn ist um 19:30 Uhr.

Thema des Abends: Arduino Basics

Arduino gilt mittlerweile als einfacher Einstieg in die Welt der
Mikrocontroller. An diesem Abend wird es eine kurze Einführung zum
Arduino geben. Wir beginnen ganz am Anfang - von Vorteil wäre es, wenn
die Teilnehmer einen eigenen Arduino (soweit vorhanden), sowie USB-Kabel
und Laptop zum Elektronik Stammtisch mitbringen.

Alle Infos im Attraktor-Wiki:
http://wiki.attraktor.org/Termin:Elektronik-Stammtisch15

P.S.: Wer vorher schon einmal reinschauen will - jeden Donnerstag ist
"Basteldonnerstag" im attraktor.

Liebe Grüße,

markbee
17  International / Deutsch / Re: char* Problem on: March 01, 2013, 06:00:59 am
offtopic: Bestimmt auch so ein Befürworter des #LSR
18  International / Deutsch / Re: Reaktionszeit Arduino Uno oder Mega unter 10µs ? Allgemeine Tipps gefragt.. on: February 14, 2013, 02:26:47 pm
...und es gibt ja noch eine Schreibweise, die ich vergessen hatte:

PORTB |= _BV(5)     // bit PORTB 5 gesetzt
PORTB &= ~_BV(5)   // bit PORTB5 gelöscht
PORTB ^= _BV(5)     // toggle

Jetzt fehlt ja eigtl. nur noch die Assembler-Fraktion smiley-wink
19  International / Deutsch / Re: Reaktionszeit Arduino Uno oder Mega unter 10µs ? Allgemeine Tipps gefragt.. on: February 14, 2013, 07:11:46 am
Moin,

ein Mikrocontroller besteht vereinfacht gesagt aus vielen Registern, deren einzelne Werte (= Bits) man auf 1 oder 0 setzen kann.
Um einen Pin am Arduino UNO (=ATMEGA328) auf Ausgang zu setzen, heißt die Funktion in der Arduino IDE (im setup() deklarieren):

pinMode(pinNr, OUTPUT);

wenn man direkt das Register und in diesem Fall das Register für z.B. den PORT B, Pin 5 (beim Arduino also digital Pin 13) auf Ausgang setzen will, dann heißt der Befehl:

bitSet(DDRB,5);

eine andere Schreibweise wäre

DDRB |= (1<<5);

oder

DDRB |= _BV(5);

DDRB = The Port B Data Direction Register

Damit setzt man das Bit 5 von DDRB auf 1 und damit den Ausgang Port B 5 auf 1. Beim Arduino entspricht das dem Pin 13 (digital).

ATEMGA328 zu Arduino Pin-Map:
http://arduino.cc/en/uploads/Hacking/Atmega168PinMap2.png

Will man nun den Pin 13 auf HIGH (oder logisch 1) schalten, dann heißt es in der Arduino IDE

digitalWrite (13, HIGH);

analog, wenn man das Register direkt beschreiben will

bitSet(PORTB,5);

oder

PORTB |= (1<<5);

oder

PORTB |= _BV(5);

PORTB – The Port B Data Register

Damit setzt man das Bit 5 in PORTB auf 1 und damit den Ausgang auf HIGH (bei einem 5V-Arduino UNO also z.B. auf 5V). Der ATMEGA328 braucht in diesem konkreten Fall

für den digitalWrite()-Befehl 66 Taktzyklen, also 66 * 62,5ns = 4.125 ns oder 4µs.
für das direkte Beschreiben der Register (bitSet()) 2 Taktzyklen (Stichwort: SBI) oder 2 * 62,5ns oder 125ns

(62,5ns wenn der ATMEGA328 mit 16 MHz = 16.000.000 Schwingungen/ Sekunde getaktet ist. 1 Sekunde/ 16.000.000  = 0.0000000625 = 62,5 ns pro Taktzyklus).

Ein direktes Beschreiben der Register beschleunigt die Verabeitung dieses einzelnen Befehls also um den Faktor 33.

Vorteil des direkten Beschreiben der Register ist demnach zum einen das i.d.R. schnellere Verarbeiten der Befehle und auch der (teilweise weitaus) geringere Platzbedarf im Flash-Speicher des Arduino.
20  International / Deutsch / Re: Tipps zum Schaltplan zeichnen (Fritzing?) on: February 13, 2013, 03:24:12 pm
Fritzing ist zwar ganz nett für den Anfang, aber sobald das Projekt keine Standardbausteine nutzt oder umfangreicher wird, ist Eagle doch um Längen besser. Die Lernkurve ist zwar steiler, aber es gibt ja auch genug Tutorials, so dass auch Eagle zu bewältigen ist.
Ansonsten einfach bei Eagle-Problemen hier nachfragen.
21  International / Deutsch / Re: Raspberry Pi als Entwicklungsumgebung für Arduino on: February 11, 2013, 05:16:25 pm
Ja, ich habe schon einiges mit dem RasPi gemacht u.a. auch Projekte mit dem Arduino.
Die Arduino IDE ist teilweise sehr träge mit dem RasPi, das brigt nicht wirklich Spaß.
Für gelegentliche Anwendungen sicherlich machbar.
22  International / Deutsch / Re: Raspberry Pi als Entwicklungsumgebung für Arduino on: February 11, 2013, 04:59:54 pm
Der RasPi ist aber nicht besonders schnell, wenn man zB die IDE benutzen will. Das möchte man sich nicht unbedingt antun...
23  International / Deutsch / Re: DS1307 breakout liefert keine Werte on: February 11, 2013, 02:08:45 am
Das sieht nach einer unsauberen Verschaltung aus (Wackelkontakt, Verkabelung).
24  International / Deutsch / Re: DS1307 breakout liefert keine Werte on: February 11, 2013, 01:39:03 am
Wie sieht denn der Sketch aus? Und der Schaltplan mit dem angeschlossenen Breakout-Board?
25  International / Deutsch / Re: Frage zu Serial.print <> Serial.println und Fenster löschen on: February 08, 2013, 12:41:32 pm
Bei putty kann man z.B. den scrollback auf 1 einstellen, d.h. nur eine Zeile wird ständig erneuert.
26  International / Deutsch / Re: Frage zu Serial.print <> Serial.println und Fenster löschen on: February 08, 2013, 12:02:41 pm
Der Serial Monitor der Arduino IDE ist zum debuggen gedacht und kann nicht gelöscht werden.
Bei anderen Terminalprogrammen kann man die Ausgabe aber mit bestimmten Befehlen löschen.
27  International / Deutsch / Re: Kann ich über SERIAL nur 8 Bit übertragen? on: February 07, 2013, 12:35:56 am
Zusammensetzen kannst Du z.B. so;

*** schnipp ***

int byteHigh = incomingByte[1]; // hier die oberen 8 bit
int byteLow = incomingByte[0]; // hier die unteren 8 bit
       
int value =  byteLow + (byteHigh * 256); // 16 bit

*** schnipp ***

Wenn Du den byteHigh "MSB"-nibble (bits 4-7) auf 0 hast, brauchst Du auch nichts maskieren. Ansonsten müsstest Du die bits 4-7 des byteHigh noch maskieren.
28  International / Deutsch / Re: Kann ich über SERIAL nur 8 Bit übertragen? on: February 06, 2013, 05:31:05 pm
Dann übertrage doch einfach zwei Byte aus Processing (low- und highbyte) die durch entsprechendes Maskieren auf der Empfängerseite wieder zusammensetzt werden. Die XBees sind dabei egal, die übertragen ja nur transparent die Daten.
Prinzipiell ist ein USART-Ausgangsregister der ATMEGA 328/ 2560 nur 8-bit groß, von daher ist dieser Umweg nötig.
29  International / Deutsch / Re: Briefkasten Erschütterungssensor on: February 05, 2013, 11:27:14 am
LDR habe ich an der Briefklappe montiert. Klappt bisher wunderbar. Allerdings muss man die Lichtverhältnisse und den Spannungsteiler gut berechnen.
30  International / Deutsch / Re: Datentypen und Verwendung von Funktionen zur Manipulation von Bits in int/long on: February 03, 2013, 04:39:45 pm
Du kannst doch mit bitweise & die einzelnen nibbles maskieren und so die drei 4-bit-Werte recht einfach herausbekommen. Oder habe ich dich falsch verstanden?
Pages: 1 [2] 3 4 ... 20