Upload
vodat
View
234
Download
2
Embed Size (px)
Citation preview
Arduino baserede kredsløb og dekodere
Introduktion Martin Bech
41 år
Multinørd, og rodet med modeltog siden barnsben
Bygger en kopi af Helsingør i 1:160 – computerstyret
Arbejder med IT – herunder tidligere en del programmering
Roder med elektronik baseret på Arduino
Aktiv i diverse facebook grupper – herunder Modeljernbane elektronik.
Medlem af Syd og Vestsjællands N klub (SOVNK)
Analog eller digital elektronik Analog elektronik er statisk – eksempelvis et relæ, eller
en astabil multivibrator (blinker)
Analog elektronik kræver udskiftning af komponenter for at virke anderledes
Digital elektronik kan programmeres, så man kan lave mere med færre komponenter, og bruge de samme ”byggeklodser” til flere ting.
Arduino
Hvad består en Arduino af
USB STIK
5-12 v DC
RESET
AtMEGA328p - hjernen
Analoge ind / udgange
Digitale ind/udgange
Hvad består en arduino af
Programmering Arduino IDE
USB kabel
C kode
Er engelsk et problem?
Hvilke koder har man brug for? pinMode(<pinnummer>,<input eller output>) digitalWrite(<pinnummer>,<HIGH eller LOW>) delay(<millisekunder>) if(<værdi><operator><værdi>) else digitalRead(<pinnummer>) #include <<filnavn>> analogWrite(<pinnummer>,<vaerdi>) analogRead(<pinnummer>,<vaerdi>) millis() for() switch() …. break
Serial.begin(<hastighed>) Serial.print(<værdi>) Serial.println(<værdi>) Servo.attach(<pinnummer>) Servo.write(<posistion>) EEPROM.read() EEPROM.write(<adresse>)
Det første programvoid setup() {// saet digital pin nummer 13 som udgangpinMode(13, OUTPUT);
}
// Loop koerer igen og igen saalaenge Arduinoer taendtvoid loop() {digitalWrite(13, HIGH); // Taend for digital pin 13 (HIGH = ca
5V)delay(1000); // vent et sekunddigitalWrite(13, LOW); // Sluk for digital pin 13 (LOW = ca 0v)delay(1000); // vent et sekund
}
Trafiklys til modeljernbanen - hardware
Trafiklys til modeljernbanen - kodeint ROED = 13; int GUL = 12; int GROEN = 11;
void setup(){pinMode(ROED,OUTPUT); pinMode(GUL,OUTPUT); pinMode(GROEN,OUTPUT);
}
void loop() { digitalWrite(ROED, HIGH); digitalWrite(GUL, HIGH); delay(3000);digitalWrite(ROED, LOW); digitalWrite(GUL, LOW); digitalWrite(GROEN, HIGH); delay(5000); digitalWrite(GROEN, LOW);digitalWrite(GUL, HIGH); delay(3000); digitalWrite(GUL, LOW);
}
En DCC dekoder Noget elektronik der kan omforme signalet fra vores
spor, til noget vi kan bruge i Arduino
NmraDCC biblioteket
Resten af vores kredsløb
Noget kode ”logik”
Elektronik der kan omdanne DCC
Arduino PIN 2
DCC SIGNAL
En DCC multi dekoder
DCC tilbehørs adresse skema Hver ”dekoder” har op til 1 adresse
Hver adresse har 4 udgange
Hver udgang har to states on/off
Første board kunne så have eksempelvis adressen 1, og to states for hver 0/1 – 2/3 – 4/5 – 6/7
Uploade DCC eksempel til Arduino Checke COM-port
Checke Arduino type
Uploade
Åbne Serial Monitor
Teste
PU Signal styring 6 LED
7 Signal billeder
Glødepære effekt
PU Del 1 Starte et NmraDCC projekt
Definere vores LEDs
Lave basiskode til styring af adresser
PU del 2 – nu med kør igennem Få input fra andet signal
PU Del 3 Huske status på signalet
Eeprom
PU signal – del 4 PWM
SoftPWM
Alternativer TCL5940
16 PWM udgange
4 pins på arduino
daisychaines
Eksempel på servo styring Servo.h
Definere en servo
Gå til position
Spørgsmål
Tak for nu Modeljerbane Elektronik
Danske Arduino Entusiaster
Arduino, Elektronik og Modeljernbaner
http://arduino.bech.dk
[email protected] – ikke altid jeg når at svare
Mit dekoderprint, og andre ting kan bestilles hos mig til rimelige priser.
Mulighed for workshop/kursus i din klub / nærområde.