Archiv für Juli, 2009

Günstiger Wandler von RS232 auf TTL

Posted in Arduino, Maxim/Dallas with tags , , , , on 24. Juli 2009 by crackburg

Wenn man einen Arduino kompatiblen Clone gebaut hat, will man ja nun auch mit ihm sprechen koennen (ohne Kommunikation ist das irgendwie nicht so der burner). Der Handel bietet einem dafuer diverse Programmieradapter an, die zwischen 12 und 15 Euro zu haben sind.
Diese Adapter sind dann meistens mit einem FTDI FT232B ausgestattet und arbeiten alle sehr gut. Sie versorgen die Schaltung in der Regel gleich mit sauberen fuenf Volt und auch das Auto-Reset fuers flashen haut hin. Nur braucht man das alles wirklich auf einem kleinen Mikrokontrollerboard das alle Jubeljahre mal geflashed wird oder via seriell ein paar Daten ausgibt?
Ich war der Meinung das ich das nicht brauche und es ein bischen uebertrieben waere jedes zusammengebastelte Board mit einem eigenen FTDI auszustatten. Ein Einbau eines FT232B kam fuer mich wegen der Bauform (LQFP SMD Gedoens) nicht in Frage. Auch der Preis fuer den blanken Chip ist mit circa vier Euro nicht zu verachten.
Auf meiner Suche nach alternativen zum FTDI-Adapter bin ich zuerst auf die 7404 Hex Inverter gestossen. Also schnell zu Radio Koelsch und ein paar davon gekauft…. aber ich habe _nie_ einen Mucks auf der seriellen Schnittstelle gesehen. Ob das nun an dem Chip, meiner Bloedheit oder Voodoo lag kann ich nicht sagen. Auf jeden Fall ist der 7404-Plan bei mit vorerst vom Tisch.

Nun bin ich wieder beim MAX232 gelandet.
Schon beim spielen mit dem WRT54g habe ich einen MAX3232 zum reden mit den UARTs eingesetzt. Aber da beim $duino in der Regel 3,3V keine Rolle spielen, reicht hier auch der guenstige rein 5voltige Bruder.
Da ich zur Zeit einfach zuviel Streifenraster/Kaugummi-Konstrukte auf dem Arbeitstisch liegen habe, wollte ich erstmal etwas schickes mit gefraester Platine haben. Also habe ich es finanziell mal richtig krachen lassen und habe mir fuer knapp vier Euro den RS232-TTL-Wandler-Bausatz bestellt.
Das zusammenloeten hat in etwa 10 min gedauert und es funktionierte auf anhieb. Auch mit mein PL2303 basierten USB2RS232 Adapter laesst sich der Giessduino flashen und gibt artig seine Werte ans Processing.

Temperatur mit dem Arduino erfassen und auf dem Computer ausgeben

Posted in Arduino, Maxim/Dallas, Processing with tags , , , , on 9. Juli 2009 by crackburg

Ich moechte mit dem Freeduino und einen DS1620 die Temperatur messen und diese dann auf dem Computer ausgeben. Die Ausgabe der Temperatur erfolgt ueber Seria.println auf der seriellen Schnittstelle.  Im Video sieht man dann erst die Ausgabe in Minicom und dann in Processing.

Der DS1620 wird ueber die Library von John P. Mulligan angesprochen.

ds1620 004

Processing Code:

// basiert auf dem Beispiel von Tom Igoe

import processing.serial.*;

Serial myPort;  //Die Serielle Schnittstelle
PFont fontA;
String tempBuffer = null;
int lf = 10;    // Linefeed in ASCII

void setup() {

size(200, 200);
background(210);
//Gib eine Liste der seriellen Interfaces aus
println(Serial.list());

// Serielle Schnittstelle festlegen
myPort = new Serial(this, Serial.list()[0], 9600);
// Die Schrift.  Der Font muss im Data Verzeichnis vom Sketch liegen
// Um einen Font zu erstellen, verwende  Tools > Create Font
fontA = loadFont(„ArialRoundedMTBold-48.vlw“);

// Textgroesse definieren (in pixeln)
textFont(fontA, 20);
}

void draw() {

while (myPort.available() > 0) {
redraw();
String inBuffer = myPort.readStringUntil(lf);

if (inBuffer != null && tempBuffer != inBuffer) {
background(210);
println(inBuffer);
fill(51);
text („Temp:“, 1, 20);
fill(51);
text (inBuffer, 1, 40);
fill(51);
text („°C“, 35, 40);
String tempBuffer = inBuffer;

}
}
}

Arduino Code:

*/

#include „DS1620.h“

// Pins fuer die 3-wire-serial definieren
int dq = 5;
int clk = 4;
int rst = 3;

// Aufruf des DS1620 Konstruktors
DS1620 d = DS1620(dq, clk, rst);

void setup()
{
// Beginne serielle Kommunikation mit 9600 Baud
Serial.begin(9600);

// Schreibe TH und TL ins EEPROM des DS1620

d.write_th(30);
d.write_tl(15);

// Schreibe configuration/status register
// Dezimal 10 = Binary 00001010
// Aktiviert CPU-Mode und deaktiviert 1-Shot Mode.
// das Datenblatt erzaehlt mehr
d.write_config(10);
d.start_conv();

}

void loop()
{
//  Temperatur auslesen und aud der seriellen Schnittstelle ausgeben
Serial.println(d.read_temp());

// eine Sekunde Pause vor dem naechsten Lesezyklus
delay(1000);
}

Der Giessduino nimmt jetzt Sketches an

Posted in Arduino on 3. Juli 2009 by crackburg

Nachdem ich das FTDI Adapter zum laufen gebracht habe, kann ich nun auch Sketches direkt an den Giessduino schicken.

Leider muss ich vor dem Upload noch Reset druecken damit er den Upload annimmt, aber das ist nur ein Kontakt der Reset schalten muss. Das finde ich schon noch.

UPDATE:

Das mit dem Reset soll so sein. Hat der Atmega 8/NG Bootloader so mit drin. Hab es meinen ATmega168 und ATmega328 ueber den ADAbootloader auch beigebracht.

ArduinoUSB/seriel Converter (jaja… seriell schreibt man mit ll!!1elf)

Posted in Arduino on 3. Juli 2009 by crackburg

Produktname:  ArduinoUSB/seriel Converter

gekauft bei:  http://www.watterott.com

Produktlink:  http://watterott.com/ArduinoUSB-seriel-Converter

ArtikelNr.: 2008424


Anfaenglich war ich von meinem USB auf seriell Adapter nicht so begeistert. Das lag aber mehr an meinem Unverstaendins und dem Umstand, dass ich was gekauft habe ohne vorher das Datenblatt oder aehnliches zu  studieren.

Die Info die mir fehlte war das es sich bei der Platine um einen Clone des USB-Adapters fuer den Arduino Mini handelt. Nachdem ich das herausgefunden hatte, war (oder waere) dem Spass keine Grenzen mehr gesetzt. Mit dieser Artikelbezeichnung habe ich dann auch die  Beschaltung finden koennen. Diese koennt Ihr unter http://www.arduino.cc/en/Main/MiniUSB nachlesen.