Arduino. Processoren på kittet er fra Atmel, af AVR-familien, og hedder Atmega 328.

Størrelse: px
Starte visningen fra side:

Download "Arduino. Processoren på kittet er fra Atmel, af AVR-familien, og hedder Atmega 328."

Transkript

1 kompendium. Dette kompendium er ikke et forsøg på at være fyldestgørende, for at komme i gang med at programmere, men er en samling af informationer og tips. Og der er en række links til materialer på nettet, - derude er der en sand guldgrubbe af materiale. Søg blot på + det, du leder efter. Mangler der noget, giv mig et hint. / Valle s oprindelse: En er et lille kit, der programmeres via USBstikket direkte fra udviklingspro grammet. The picturesque town of Ivrea, which straddles the blue-green Dora Baltea River in northern Italy, is famous for its underdog kings. In 1002, King Arduin became the ruler of the country, only to be dethroned by King Henry II, of Germany, two years later. Today, the Bar di Re, a pub on a cobblestoned street in town, honors his memory, and that s where an unlikely new king was born. The bar is the watering hole of Massimo Banzi, the Italian cofounder of the electronics project that he named in honor of the place. Processoren på kittet er fra Atmel, af AVR-familien, og hedder Atmega 328. Datablad for processoren: se Udviklingssproget til er en af-art af programmeringssproget C++. (C++ med twist ). Side 1 af 35

2 Timeline: AVR-familien er udviklet i 1996 af ATMEL. Arkitekturen er lavet af Alf-Egil Bogen og Vegard Wollan, og har fået sit navn af: Alf-Egil Bogen Vegard Wollan RISC microcontroller, også kendt som Advanced Virtual RISC. Controlleren AT90S8515 var den første microcontroller der var baseret på AVR arkitekturen. 1 På linket ses en lille video, der beskriver udviklingen af forskellige generationer af. Eller se en dokumentar-film om Uno er en af de seneste versioner, - og er nu ude i revision 3, ( ses på bagsiden af kittet, mærket Uno R3 ) Senere kit: Leonardo fra 2012, Måder at bruge på: Når kittet er programmeret, kan det køre uden PC-tilslutning, blot det får en extern powersupply. Eller det kan køre med computeren tilsluttet, hvorved man tillige har mulighed for at sende data frem og tilbage On the fly mellem kittet og PC-en. Og endelig kan man tage kittets programmerede uc ud, - og sætte den på sit eget print eller fumlebrædt. Her kan man evt. montere et stik, der muliggør direkte in circuit programmering med specielle USB-stik. Processorens pins er ført ud til nogle hunstik, hvorfra signaler kan videreføres med nogle ledninger til et fumlebrædt. Hvis USB er tilsluttet, kan kittet køre direkte fra PC ens power. Hvis den skal køre uden USB, forsynes den fra en netadapter, 7 12 Volt, med plus i midten: 1 Side 2 af 35

3 Tekniske specifikationer: 2 Microcontroller ATmega328 Operating Voltage 5V Input Voltage (recommended) 7-12V Digital I/O Pins 14 (of which 6 provide PWM output) Analog Input Pins 6 DC Current per I/O Pin 40 ma Flash Memory 32 KB (ATmega328) of which 0.5 KB used by bootloader SRAM 2 KB (ATmega328) EEPROM 1 KB (ATmega328) Clock Speed 16 MHz Se endvidere datablad for processoren, fra Farnell: Board-diagram: Pins: Pins numre 0 til 13 er enten Input eller Output. De 6 pins, der har en lille bølgelinje, ~ foran nummeret, kan bruges som analogt output. Det er dog ikke en analog DC, men et PWMoutput, der kan bruges til at dæmpe fx lysdioder. Processoren kører på 16 MHz. Et Fumlebrædt kan forsynes fra en fra pin mærket 5 V, og der er 2 Gnd-pins. På pin 13 er der en LED direkte på boardet, der viser om pin 13 er høj. De pins, der skal bruges i programmet, kan defineres med et navn og som int, dvs. integer. ( Heltal ) Dvs. at pinnumrene får tildelt et navn. Det er smart, idet man så let senere kan ændre pinnummer for alle referencer til pågældende pin længere nede i programmet, blot ved at ændre i programmets opsætningsdel i toppen! Pins mærket A0 til A5 er analoge pins. De betyder, at processoren kan måle og omsætte et analogt inputsignal til et digitalt tal. De kan også bruges som Input/Output. Pin 0 og 1 er ført til processorens UART. De kan desværre ikke bruges, hvis arduinoen er tilsluttet PC-en via USB, idet kommunikationen mellem de to foregår via UART en. 2 Side 3 af 35

4 Kilde: Hver pin kan levere +/- 40 ma. ( Kilde# 3 ) DC Current VCC og GND pins: 200 ma Der sidder en sikring på boardet der begrænser overbelastning af pin-ene Der må sættes 8 10 V på pin Vin, der går til 7805-indgangen. Der er ligeledes en 3V3 pin med meget præcis regulator. Den kan evt. bruges i opstillinger som reference-spænding Her er vist en oversigt over sammenhængen mellem uc ens porte og I/O pinnumre i -verdenen. Søg på Pin Mapping For Mega, se link: Side 4 af 35

5 Udviklingsprogrammet: Start udviklingsprogrammet, der også kaldes for IDE. IDE ( Integrated Development Environment ) Et kilde-program i verdenen kaldes en sketch. En sketch gemmes med extension.ino. Default gemmes sketches i folderen: / dokument /. De vil så automatisk ses i Sketchbook menuen! Bemærk, at der automatisk oprettes en mappe, hvori programmet gemmes, med samme navn som kildetekst-filen. Obs: Brug aldrig de danske Specialbogstaver til filnavne, heller ikke i fil-stien. IDE, Udviklingssoftware / Knapper Verificer. Dvs. Compiler ( oversæt ) programmet, og tjek for sproglige og syntax-fejl. Compiler og Upload til -hardwaren. I bunden kan ses, hvor stor fil, der uploades. Husk først at vælge det rigtige board, og rigtige Com-port. Vælg Tools / Board, og Tools / Serial Port. Når der er uploaded, vil det nye program starte med at køre! Ny kildetekstfil. ( sketch ) Åbn en gemt fil. Gem fil Side 5 af 35

6 Indstilling af Boardtype og COM-Port. For at man kan Compilere til det rigtige board, skal boardtypen vælges, - og der skal vælges den rigtige COM-port, som boardet har fået tildelt ved tilslutningen til USBporten. Se evt. om Enhedshåndtering i kompendiet. ( Om installation af drivere ) Opbygning af kildetekst: Find evt. det eksempel på en blinkende LED, der følger med: Side 6 af 35

7 En Kildetekst opdeles altid i 4 eller flere dele. Øverst ses først en Header, dvs. en kommentar-del, hvor man med ren tekst forklarer hvad programmet skal gøre. Hvem der er programmør, dato osv. Kommentar indsættes mellem /* og */. Bruger man kun 1 linje kommentar, kan man i stedet bruge //. Dernæst kommer en erklæringsdel. Her defineres variabel-navne, navne på pins, navne på konstanter, osv. Variable er navne på RAM, der kan indeholde et tal. For at Compileren kan vide hvor mange Byte, der skal afsættes til en variabel, skan man angive det. Fx med int, der står for integer, der betyder et heltal, 16 bit.. #define constantname value #define ledpin 3 const float pi = 3.14; ROM en const byte buttonpin = 12; // #define er dog ikke vellidt, idet konstanten // placeres i RAM, og derved optager plads. // Const tvinger compileren til at placer pi i //pinnavn til trykknap const int shorttime = 5; const long longtime = 3*shortTime; char message[] = "I support Valle."; volatile int state = LOW; volatile byte seconds; // Hvis programmet bruger interrupts, skal de // variable, der bruges både i hovedprogrammet // og i interrupt-service-rutinen erklæres som // volatile. void setup( ). Side 7 af 35

8 I næste afdeling placeres et program, der hedder void setup( ). Det er en programdel, der kun udføres 1 gang ved power-on, eller ved reset. I denne del defineres kontrollerens ben til at være udgange eller indgange, og hvad de skal starte med at være, høje eller lave. void setup() pinmode(buttonpin, INPUT); // initializer pin som input: digitalwrite(buttonpin, HIGH); // gør pin høj. Serial.begin(9600); // initialiser serial communikation: Definer altid Output efter pinmode. void loop( ) I den 4. del placeres den programdel, der kører i loop. Alle arduino-programmer skal minimum have en setup-del og en loop-løkke. En Loop-løkke, fordi en processor ikke kan lave ingenting! Funktioner() Delprogrammer, - underprogrammer eller funktioner kan med fordel placeres i selvstændige afsnit. Evt. kan de placeres i nye tabs. Se senere Funktioner kan placeres efter void Loop(), mellem void setup() og void Loop(), eller de kan placeres i selvstændige tabs. An program is structured in four parts. FIRST: Begin with some comments about the program SECOND: List variables and constants that all the functions may use. Variables are names for memory locations that a computer can use to store information that might change. Constants are numbers that won t change. THIRD: Run the setup() function to prepare stuff. This is where you perform tasks that you want done once at the beginning of your program void setup() Side 8 af 35

9 // do things once at the start of the program FOURTH: Run the loop() function. This is where you run things in a sequence from the top of the loop to the bottom of the loop, then you start over again at the top, looping until the machine gets turned off void loop() // Do the first thing // Do the second thing // Do any number of things // Do the last thing in the list // Go back to the beginning of this list Se Cookbook: Se evt følgende: Kilde: Google: lecture_programming_microcontrollers.ppt eller: Funktionsnavne i IDE, Kamelskrift Forklaring på navne i -IDE camelcase er en måde at sammensætte ord uden bindestreg eller mellemrum, men med første bogstav i 2. og efterfølgende ord skrevet med stort. Side 9 af 35

10 Navnet kommer sandsynligvis fra at versalerne midt i ordet ser ud som pukler på en kamel. camelcasemedlillebegyndelsesbogstav camelcase forveksles ofte med PascalCase, hvor også det første bogstav skrives med stort Hjælp: Find let hjælp på IDE, -> Help -> Reference Links til online materiale: På nettet findes et hav af materiale om. Specielt anbefales at se på en videoserie lavet af en ung gut, Jeremy Blum: Se Play-List: Getting started: For beginners: Der findes et hav af info om specifikke opgaver på s egen hjemmeside: Pdf med interne links! Ret god!! Link til Include-biblioteker: Håndtering af værdier og Tal Tal gemmes i variable, der jo selvfølgelig gemmes i processorens RAM. Tallene tildeles et navn i programmet, men compileren vælger selv, hvor i RAM-en de gemmes. Side 10 af 35

11 Variabel: Bytes Range, Kan antage værdierne: int til Repræsenterer positive og negative heltal This is most commonly what you see used for general purpose variables in example code provided with the IDE. unsigned int 2 0 til Repræsenterer kun positive tal long 4 Unsigned long 4 float E+38 til E+38. They are stored as 32 bits (4 bytes) of information. double 4 På nogle nye boards er de 8 byte! boolean 1 False (0) eller true (1) Også LOW og HIGH, 0 og 1. char til 127 Repræsenterer 1 enkel karakter eller en signed værdi mellem -128 og 127 The compiler will attempt to interpret this data type as a character in some circumstances, which may yield unexpected results. byte 1 0 til 255 Som char, men for unsigned værdier byte b = B10010; Word = Unsigned int. string 0 to word w = 10000; I -verdenen er det let at lave beregninger på variable. For en oversigt over de mulige matematiske operatorer, se: Matematiske operationer: Operator Eksempel Ækvivalent udtryk Kommentar += Value += 5; Value = Value + 5; // add 5 to Value -= Value -= 4; Value = Value - 4; // subtract 4 from Value *= Value *= 3; Value = Value * 3; // multiply Value by 3 /= Value /= 2; Value = Value / 2; // divide Value by 2 >>= Value >>= 2; Value = Value >> 2; // shift Value right two places Side 11 af 35

12 <<= Value <<= 2; Value = Value << 2; // shift Value left two places &= Mask &= 2; Mask = Mask & 2; // binary and Mask with 2 = Mask = 2; Mask = Mask 2; // binary or Mask with 2 Boolske operationer: Symbol Funktion Kommentar Eksempel & Bitwise And Sets bits in each place to 1 if both bits are 1; otherwise, bits are set to 0. 3 & 1 equals 1 (11 & 01 equals 01) Bitwise Or Sets bits in each place to 1 if either bit is equals 3 (11 01 equals 11) ^ Bitwise Exclusive Or Sets bits in each place to 1 only if one of the two bits is 1. 3 ^ 1 equals 2 (11 ^ 01 equals 10) ~ Bitwise Negation Inverts the value of each bit. The result depends on the number of bits in the data type. ~1 equals 254 (~ equals ) Eksempler på Logiske operatorer Konvertering mellem talformater: Floatvaerdi = float( int eller byte værdi * fx4.0); Konvertering til float: Side 12 af 35

13 = float(tal); // kan være byte eller int. Arrays int myarray[] = 1, 2, 3, 4, 5, 6; Note that arrays start counting from 0. This means that the first position in an array is 0. In the example above the number 1 is store in the first position in the array and if we were to call for this value we would have to do it as: mynumber = myarray[0]; Se fx: Paranteser: I IDE en bruges paranteser til at strukturere programmet. Overordnede strukturer omkranses af, og underordnede kommandoer af ( ). Ved debuging kan man placere cursoren til højre for fx så highlightes den tilhørende klamme. Det gør det let at se, hvordan strukturen hænger sammen Dobbeltklikkes på stedet, farves en hel blok. Vælges Værktøjer -> Autoformatering struktureres programmet automatisk med tabulator-indrykning Programeksempler: ( Bygget mere eller mindre over JeremyBlum s Youtube videos! De er bare geniale!!) Se: Se evt. side med de første 10 ting, man gør når man begynder at lære programmering: Side 13 af 35

14 int switchpin = 8; int ledpin = 13; boolean lastbutton = LOW; boolean ledon = false; // Boolean kan sættes til LOW, False eller 0, // eller high, osv. Void setup() // Opsætning, køres 1 gang! pinmode(switchpin, INPUT); // Definer og sæt pin 8 op som input pinmode(ledpin, OUTPUT); // Do, pin 13 som output Void loop() // Herefter følger loop -rutinen. If ( digitalread(switchpin) == HIGH) digitalwrite(ledpin, HIGH); else digitalwrite(ledpin, LOW); && betyder AND! int switchpin = 8; int ledpin = 13; boolean lastbutton = LOW; boolean ledon = false; void setup() pinmode(switchpin, INPUT); pinmode(ledpin, OUTPUT); void loop() if (digitalread(switchpin) == HIGH && lastbutton == LOW) // If button went from Low to High Side 14 af 35

15 ledon =!ledon; // LED changes state lastbutton = HIGH; else //lastbutton = LOW; lastbutton = digitalread(switchpin); // update lastbutton state digitalwrite(ledpin, ledon); // update LED state --- Subrutine: void setup() lalalalal void loop() do something; subroutinename(); //end //calls your subroutine void subroutinename() whatever you want it to do Boolean debounce(boolean last) Boolean current = digitalread(switchpin); If (last!= current) Delay(5); current = digitalread(switchpin); Return current; En subroutine kaldes sådan: Side 15 af 35

16 currentbutton = debounce(lastbutton); Analog output: Pwm output mærket ~ er pseudo analog outputpin, - der godt kan bruges til at dæmpe LED-lys: Men det er en PWM-output, der pulses!! Der kan sendes værdier fra 0 til 255 til en Pin. Eksempel på, at læse et potmeter, og sende Seriel til PC-en i debug-vinduet: int ledpin = 13; Void setup() pinmode(buttonpin, INPUT); // sætter button pin som input Serial.begin(9600); // tillad seriel kom! void loop() Serial.println(digitalRead(buttonPin)); Delay(1000); // vent 1 sekund, så print igen! Eksempel på analogread; Serial.Println(analogRead(potPin)); Delay(1000); // print pin-værdien Læser fra 0 til 1023, fx hvis der sættes et potentiometer på en analog input pin og der justeres fra 0 til 5 Volt. Dvs. 10 bit opløsning! Eksempel: læs spænding på pin, og skriv på PC. int sensepin = 0; void setup() analogreference(default); // er ikke nødvendig Side 16 af 35

17 Serial.begin(9600); Void loop() Serial.println(analogRead(sensePin)); Delay(500); Lyscensor: int sensepin = 0; int ledpin = 9; Void setup() analogreference(default); // Er ikke nødvendig! pinmode(ledpin, OUTPUT); void loop() int val = analogread(sensepin); if(val < 800) digitalwrite(ledpin, HIGH); else digitalwrite(ledpin, LOW); Eksempel: void loop() int val = analogread(sensepin); // Læs værdi fra 0 til 1023 val = constrain(val, 750, 900); Int ledlevel = map(val, 750, 900, 255, 0); analogwrite(ledpin, ledlevel); // Funktionen constrain afrunder værdien val til kun // at ligge i intervallet vist, altså fra 750 til 900 // Funktionen map vil tage værdien val, og lave værdier // fra 750 til 900 om til værdier fra 255 til 0 jævnt fordelt!! Episode #5, Motorer og transistorer. DC-Motor PWM. Side 17 af 35

18 Følgende eksempel får en motor styret af en switch-transistor til at køre hurtigere og dernæst langsommere. Motor accelereres af tallene fra 0 til 255. PWM.!! Def af Var?? Void Loop() For ( int I = 0; i<=255; i++) analogwrite(motorpin,i) delay(10); delay(500); for ( int i = 255; i>=0; i--) analogwrite(motorpin,i) delay(10); delay(500); Servomotor. I er der et driverbibliotek til Servomotorer. Den er beregnet til at koble direkte til uc-en. Vores kit skal have tilsendt en ID + 4 bytes med info om servoernes position. Første eksempel får bare motoren til at køre frem og tilbage: int servopin = 9; // Def servopin, fx pin 9 #include <Servo.h> Servo MinServo; // brug et bibliotek, med kode til at styre en servo-motor // Typen Servo, kaldet MinServo Void Setup() MinServo.attatch(servopin); Void loop() For (int i =0; i<=180; i=i+20); MinServo.Write(i); Delay(1000); ; eksempel, hvor motorens stilling styres af en læsning af den analoge spænding på en pin: Side 18 af 35

19 void loop() int dist = analogread(distpin); int pos = map(dist, 0, 1023, 0 180); // der læses på pin, værdier fra 0 til Disse værdier laves om til værdier // mellem 0 og 180, og stoppes ind i variablen pos. //Som do! ; /* Servo Test sketch */ #include <Servo.h> Servo servomain; // Define our Servo void setup() servomain.attach(10); // servo on digital pin 10 void loop() servomain.write(45); // Turn Servo Left to 45 degrees delay(1000); // Wait 1 second servomain.write(0); // Turn Servo Left to 0 degrees delay(1000); // Wait 1 second servomain.write(90); // Turn Servo back to center position (90 degrees) delay(1000); // Wait 1 second servomain.write(135); // Turn Servo Right to 135 degrees delay(1000); // Wait 1 second servomain.write(180); // Turn Servo Right to 180 degrees delay(1000); // Wait 1 second servomain.write(90); // Turn Servo back to center position (90 degrees) delay(1000); // Wait 1 second Episode # 6 Seriel kommunikation: Se fx: Hvordan PC-en kan forbindes til via Rx og Tx, Pin 0 og 1. Side 19 af 35

20 -C-sproget er baseret på et sprog, der hedder Processing. Det er et sprog, der kan bruges til at skabe programmer på PC-skærmen. Processing er et Crossplatform program! Tx og Rx bruges til kommunikationen mellem PC og kit. Derfor kan de ikke bruges samtidig med at den er sluttet til PC-en. For at det kan gøres, skal der bruges en større, fx Mega, eller der skal anvendes softserial. Først leges lidt med seriel input boksen på skærmen: Void Setup() Seriel.begin(9600); // Create seriel object Void loop() While ( seriel.available() = 0); // vent til der kommer en værdi til kittet Int val=seriel.read(); // echo input til PC-en! Seriel.Println(val); // send til PC // dvs. når der indtastes et tal, sendes der et tal retur til PC-en // sendes et 0, returneres der et 48. ( Se ascii tabellen ) et 1 -> 49. // Evt. kan der skrives: int val = Seriel.Read() 0 ); Eks. På at styre noget på kittet: If (val ==1) Seriel.Println( Led er on ); Digital.Write(LedPin, High); Else if(val==0) Seriel.Println( Led er off ); Digital.Write(LedPin, low); Else Seriel.Println( Invalid ); Seriel.flush(); // Tøm buffer!?? Side 20 af 35

21 En else if blok kan bruges med eller uden en afsluttende else block og modsat. Man kan bruge et ubegrænset antal else if blokke. if (pinfiveinput < 500) // do Thing A else if (pinfiveinput >= 1000) // do Thing B else // do Thing C Herefter kommer noget kode skrevet til Processing-sproget til PC-en. Vinduet ligner det, der skrives i til -udviklingen. I2C Episode #7, Dette eksempel er til kredsen fra Microchip: TC74A0. Forbindelserne er vist fastlagt på forhånd i biblioteket,: SDA ( A04 ) SCL ( A05 ) #include <Wire.h> // Include the Wire Library int temp_address = 72; // set the address på temp sensor void setup() Serial.begin(9600); Wire.begin(); På PC-en ses dette: Void loop() // Send a request Wire.beginTransmission(temp_address); // Start Talking Wire.endTransmission(); // Ask for Register zero Side 21 af 35

22 Wire.requestFrom(temp_address, 1); // Request 1 byte while(wire.available() == 0); // Wait for response int c = Wire.receive(); // get the temp // Convert fra Cencius tuil Farenheit ( eksempel ) int f = round(c*9.0/ ); //Send til PC, skriv resultatet Serial.print(c); Serial.print( C ); Serial.print(f); Serial.println( F ); // Ingen ny linje! // Skriv C for Celcius // Nu med ny linje delay(500); Afsnittet fortsætter med noget kode til Processing!! Der laves et vindue med: SPI kommunikation: Episode #8 Eksemplet bruger en digital pot. En AD5204, der bruges til at styre formodstanden foran 3 lysdioder. Side 22 af 35

23 I biblioteket er der default brugt Pin 11 = serial into slave, MoSi Pin 13 = Clk Pin 12 = Slave out, into master?? SoMi. #Include <SPI.h> int SS = 10; defineret i lib. //Include SPI Library // Sæt Slave Select pin, Pinnr er valgfri!, de andre er void setup() pinmode(ss, Output); // Sæt Pin 10 til output. De andre håndteres automatisk! SPI.begin(); // Initier SPI // her kommer en funktion til at styre pot void setled(int reg, int level) // funktionen har 2 parametre! // Potmeteret styres af 4 registre, 0 til 3 // Level er fra 0 til 255! digitalwrite(ss, LOW); SPI.transfer(reg); SPI.transfer(level); digitalwrite(ss, High); // Chip selectes. // Send Reg nummer // Så kommer loop-en! void loop() for(int i =0; i<=2; i++) for ( int j=50; j<=255; j++) setled(i,j); // Send værdier til funktionen delay(20); Delay(500); // Delay på fuld skrald Side 23 af 35

24 for ( int j=255; j>= 50; j--) setled(i,j); // Send værdier til funktionen delay(20); Episode # 09, Wireless Communication Eksempel: float value = 1.1 void setup() Serial.begin(9600); void loop() value = value 0.1; // værdien reduceres med 0,1 for hver loop if( value == 0) Serial.println( Værdien er nøjagtig 0 ); Else if(almostequal(value, 0)) // Værdien næsten lig 0 Serial.print( Værdien ); Serial.print(value,7); // print til 7 decimalpladser Serial.println( er næsten lig 0 ); else Serial.println(value); Delay(100); /* Simple Cylon Cylon Eye sweep using 5 LEDs */ unsigned char updown=1; // start off going UP unsigned char cylon=0; // determines which LED is on 0 to 4 Side 24 af 35

25 void setup() // initialize the digital pins as outputs. DDRB = B ; // sets port B pins 0 to 4 as outputs void loop() if(updown==1) cylon++; if(cylon>=4) updown=0; else cylon--; if(cylon==0) updown=1; PORTB = 1 << cylon; delay(150); // Reached max LED, next time we need to go down // Reached min LED, next time we need to go up // wait for a second // LCD // Se evt. bibliotek: /* LiquidCrystal Library - Hobbytronics Demonstrates the use a 16x2 LCD display. The LiquidCrystal library works with all LC D displays that are compatible with the Hitachi HD44780 driver. There are many of them out there, and you can usually tell them by the 16-pin interface. This sketch prints "Hobbytronics" to the LCD and shows the time. This sketch is based on the sample sketch at l/liquidcrystal but with modifications to the LCD contrast to make it adjustable via software The circuit: * LCD RS pin to digital pin 12 * LCD Enable pin to digital pin 11 * LCD R/W pin to Ground, only Write to LCD. * LCD VO pin (pin 3) to PWM pin 9 * LCD D4 pin to digital pin 5 * LCD D5 pin to digital pin 4 * LCD D6 pin to digital pin 3 * LCD D7 pin to digital pin 2 */ // include the library code: #include <LiquidCrystal.h> // initialize the library with the numbers of the interface pins LiquidCrystal lcd(12, 11, 5, 4, 3, 2); Side 25 af 35

26 void setup() pinmode(9, OUTPUT); // declare pin 9 to be an output: analogwrite(9, 50); lcd.begin(20, 4); // set up the LCD's number of columns and rows: lcd.print(" HobbyTronics"); // Print a message to the LCD. void loop() // set the cursor to column 0, line 1 ( line 0 3 ) lcd.setcursor(0, 1); // print the number of seconds since reset: lcd.print(millis()/1000); Se også Jeremy s tutorial episode #13 //Examples of lcd.print() lcd.print("hello World"); lcd.print(variable); lcd.print(variable,dec); //*** Make sure you do not exceed the number of columns of the LCD module. // lcd.setcursor(); Examples of setcursor() lcd.setcursor(0,0); lcd.setcursor(9,1); lcd.clear(); // Jump to the top left corner // Jump to column 10, second row //Clear Screen ; Eksempel på Pin-interrupts: // toggles LED when interrupt pin changes state int pin = 13; volatile int state = LOW; void setup() pinmode(pin, OUTPUT); attachinterrupt(0, blink, CHANGE); void loop() Side 26 af 35

27 digitalwrite(pin, state); void blink() state =!state; Serial kommunikation: Txd & RxD Se: void setup() Serial.begin(9600); void loop() int incomingbyte; if(serial.available() > 0) incomingbyte = Serial.read(); Serial.write(incomingByte); // read the incoming byte: // echo I2C Kilde: /* Program: two_wire_knigh_rider Description: Uses a PCF8574 IO Expander IC on the TWI bus to interface 8 LEDs. A "knight rider" display is shown on the LEDs. Date: 25 April 2012 Author: W.A. Smith, */ #include <Wire.h> // address of PCF8574 IC on TWI bus Side 27 af 35

28 #define IO_ADDR (0x40 >> 1) void setup() Wire.begin(); // initialize the I2C/TWI interface void loop() static unsigned char data = 0x01; // data to display on LEDs static unsigned char direc = 1; // direction of knight rider display // send the data to the LEDs Wire.beginTransmission(IO_ADDR); Wire.write(~data); Wire.endTransmission(); delay(70); // speed of display // shift the on LED in the specified direction if (direc) data <<= 1; else data >>= 1; // see if a direction change is needed if (data == 0x80) direc = 0; if (data == 0x01) direc = 1; EEPROM: Touch-pad: For retning af fejl i Cookbook: Se: Se side: Direkte portmanipulation: Portmanipulation: Side 28 af 35

29 Millis() I IDE-verdenen er der indbygget nogle funktioner, man i sit program kan gøre brug af. Fx millis(). Mens ens program afvikles, har compileren sørget for, at programmet afbrydes af et interrupt hver millisekund fra timer 0, og opdaterer en unsigned long system-variabel med navn millis. Det er den indbyggede Timer 0 der bruges. Millis() function: Der bruges en Unsigned long 32bit variable. Det betyder at den kan tælle fra 0 og op til 2^32-1 millisekunder. ( = ) Dette svarer til: (2^32-1) / 1000ms / 60sec / 60min / 24hr = dage, eller 49 dage og 17 timer. Millis() is derived from timer0_millis, unsigned long Target; void setup( void ) Target = millis() ; void loop( void ) if ( millis() >= Target ) /* Do our thing */ Target = millis() ; Det betyder så, at hvis der udmåles en tid ved hjælp af millis, vil der ske fejl efter 49 dage. Da vil variablen millis give overflow og starte forfra igen. Dette er illustreret i denne skitse. Ttotal = tmax t1 + t2 + 1 Millis() t1 t2 Work Around /* kursus oktober 2013 Ur */ Side 29 af 35

30 // Konstanter const byte ledpin = 13; const unsigned int tdelay = 1000; const unsigned long maxcount = ; // Variabler byte sekundtaeller = 0; byte minuttaeller = 0; byte timetaeller = 0; unsigned long newtime = 0; unsigned long oldtime = 0; unsigned long difftime = 0; void setup() Serial.begin(9600); pinmode(ledpin, OUTPUT); digitalwrite(ledpin, LOW); void loop() printtid(); sekundtaeller++; if(sekundtaeller > 59) minuttaeller++; sekundtaeller = 0; if(minuttaeller > 59) timetaeller++; minuttaeller = 0; delayultra(); // Den præcise delayfunktion //##### SUBs ##### // Den præcise delayfunktion void delayultra() while (difftime < tdelay) newtime = millis(); if(newtime >= oldtime) difftime = newtime - oldtime; else difftime = maxcount - oldtime + newtime + 1; oldtime = newtime; difftime = 0; void printtid() Side 30 af 35

31 Serial.print( "Tid: "); if(timetaeller < 10) Serial.print("0"); if(timetaeller < 1) Serial.print("0"); else Serial.print(timeTaeller, 1); Serial.print(":"); if(minuttaeller < 10) Serial.print("0"); if(minuttaeller < 1) Serial.print("0"); else Serial.print(minutTaeller, 1); Serial.print(":"); if(sekundtaeller < 10) Serial.print("0"); if(sekundtaeller < 1) Serial.println("0"); else Serial.println( sekundtaeller, 1); // ##### Ikke flere SUBs ##### Mega Pinout: Side 31 af 35

32 Andre kredse, der måske kunne være interessante: I2C: PCF8575, 16 bit I/O SPI: MCP23017 ( fås ikke?? ) 74HC4067, 16 kanal analog mux. Oversigt over smarte funktioner i C++ Biblioteker Eksempler Se debounce Cookbook side 157 isdigit If(isDigit(ch)) // tjek om en variabel har værdien fra 0 til 9. Se Cookbook side 101 Seriel UART SoftSerial: Hvis fx en rx-pin ikke bruges, kan den gives pinnummer 255. Der kan laves flere soft-serial porte ( Cookbook s. 144 #include <SoftwareSerial.h> const int rxpin1 = 2; const int txpin1 = 3; Side 32 af 35

33 const int rxpin2 = 4; const int txpin2 = 5; SoftwareSerial gps(rxpin1, txpin1); // gps device connected to pins 2 and 3 SoftwareSerial xbee(rxpin2, txpin2); // xbee device connected to pins 4 and 5 void setup() xbee.begin(9600); gps.begin(4800); xbee.listen(); // Set xbee to be the active device Serial print / write, se skema side Cookbook side 99. Send 1 byte som byte: Serial.write(bytevalue); Der kan også skrives: myserial.print( (byte)131 ); Serial.write() expects a byte argument (8 bits) myserial.print((char)c); lowbyte highbyte Læs flere pins til 1 variabel: Serial.write(lowBYTE(intvalue)); Serial.write(highBYTE(intvalue)); int values = 0; // se Cookbook side 123 int bit = 0; for(int i=2; i <= 13; i++) bitwrite(values, bit, digitalread(i)); // set the bit to 0 or 1 depending // on value of the given pin bit = bit + 1; // increment to the next bit map Random Int value = random(599); // giver random værdi fra 0 op til 598 randnumber = random(10, 20); randum(min, max) While int i = 0; while (i < 100) // Do something!! fx en sub: flash(200); i ++; int segmentpins[] = 3, 2, 19, 16, 18, 4, 5, 17; Side 33 af 35

34 Globale variable void setup() for (int i=0; i < 8; i++) pinmode(segmentpins[i], OUTPUT); volatile int state = LOW; Constrain The constrain() function requires three parameters: x, a, and b where x is the number you want to constrain, a is the lower end of the range, and b is the higher end. So, the constrain() function looks at the value of x and makes sure it is within the range of a to b. If it is lower than a, it sets it to a; if it is higher than b, it sets it to b. 13 sensorval = constrain(map(analogread(a0),200,800,0,100),0,100); Therefore an Analog reading of 0 = 0 Analog reading of 100 = 0 Analog reading of 200 = 0 Analog reading of 800 = 100 Analog reading of 955 = 100 Analog reading of 1023 = 100 Analog values between 200 and 800 will produce a result between 0 and 100. Seriel skiftereg void shiftout(byte dataout) Apress beginning PDF side 127 char string1[] = "Hello!"; lcd.println(string1); //send the string to the LCD sensorval = map(analogread(a0),0,1023,0,100) map(value, fromlow, fromhigh, tolow, tohigh) int val = analogread(0); val = map(val, 0, 1023, 0, 255); analogwrite(9, val); Side 34 af 35

35 LED Ur i 30 Projects evil --- pdf SD-kort i Apress lego pdf, s. 114 Led Dot Matrix Apress beginning side 134. Burger 2 74HC595 Grafisk LCD Apress beginning side 246 SD-kort Apress beginning pdf side 317 RF-ID Apress beginning side pdf side 344 Færdig med apress Side 35 af 35

Arduino Programmering

Arduino Programmering Microcontroller, Arduino I teknologi skal vi lære at lave programmer til uc for at have muligheden til eksamen at kunne lave intelligente el-produkter. I hvert fald skal vi have set mulighederne, og forstået

Læs mere

Microcontroller, Arduino

Microcontroller, Arduino Microcontroller, Arduino Programmerbar elektronik. uc Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Forstå princippet i programmering af en uc og se mulighederne. Programmeringen

Læs mere

Fra programmering til mikroprocessor

Fra programmering til mikroprocessor Programmering for begyndere Brug af Arduino Fra programmering til mikroprocessor EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Start på Arduino og programmering Programmerings kursus Sidste gang (Introduktion)

Læs mere

Start på Arduino og programmering

Start på Arduino og programmering Programmering for begyndere Brug af Arduino Start på Arduino og programmering EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Start på Arduino og programmering Sidste gang (Introduktion) Programmeringssproget

Læs mere

Microcontroller, Arduino

Microcontroller, Arduino Microcontroller, Arduino Kompendium til Arduino-programmering i Teknologi. Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Vi skal forstå princippet i programmering af en uc og se

Læs mere

Arduino Programmering

Arduino Programmering Microcontroller-programmering med Arduino I teknologi skal vi lære at lave programmer til en microcontroller for at have muligheden til eksamen at kunne lave intelligente el-produkter. I hvert fald skal

Læs mere

LCD intro. LCD Character display-intro. Redigeret 4/6-2019

LCD intro. LCD Character display-intro. Redigeret 4/6-2019 LCD Character display-intro Parallel interface, Forbindelsesdiagram, Ram & Rom-struktur, Biblioteksfunktioner til at styre LCD-skærmen, Lcd.Print vs Lcd.Write, Selvdefinerede karakterer, herunder æ, ø

Læs mere

Analoge indgange og A/D konvertering. Analoge udgange

Analoge indgange og A/D konvertering. Analoge udgange Programmering for begyndere Brug af Arduino Programmeringskursus Analoge indgange og A/D konvertering Analoge udgange Knud Krogsgaard Jensen OZ1QK Oversigt Oversigt over i aften: A/D konvertering iterations

Læs mere

Internt interrupt - Arduino

Internt interrupt - Arduino Programmering for begyndere Brug af Arduino Internt interrupt - Arduino - Afslutning EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Intern interrupt Jeg vil rydde lidt op. Her er nogle punkter vil har glemt

Læs mere

Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1

Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1 Project Step 7 Behavioral modeling of a dual ported register set. Copyright 2006 - Joanne DeGroat, ECE, OSU 1 The register set Register set specifications 16 dual ported registers each with 16- bit words

Læs mere

Example sensors. Accelorometer. Simple kontakter. Lysfølsomme. modstande. RFID reader & tags. Temperaturfølsomme. Flex Sensor.

Example sensors. Accelorometer. Simple kontakter. Lysfølsomme. modstande. RFID reader & tags. Temperaturfølsomme. Flex Sensor. Simple kontakter Accelorometer Example sensors Lysfølsomme modstande RFID reader & tags Temperaturfølsomme modstande Flex Sensor Ultralyds afstandsmåler Piezo Pressure/vibration Piezo Sound/buzzer Peltier

Læs mere

danske karakterer på Lcd

danske karakterer på Lcd Arduino og LCD ( 16/3-13 ) Når Arduinoen kobles til et LCD-display, kan man ikke umiddelbart skrive de danske karakterer æ, ø og å. Bag hver karakterplads i LCD-en er der en 8-bit RAM. Hvis der skrives

Læs mere

Løkkestrukturer mm. Trykknap: Button, Se eksempler / Digital / Button. Decision: If: Version 05/ Arduino, Loops, løkker, programfunktioner mm.

Løkkestrukturer mm. Trykknap: Button, Se eksempler / Digital / Button. Decision: If: Version 05/ Arduino, Loops, løkker, programfunktioner mm. Arduino, Loops, løkker, programfunktioner mm. Links til følgende i dokumentet: Trykknap If, If else, If Else If While, Do While For-Loop Break, PWM Serial Read Funktioner og subrutinerr Switch Case Random

Læs mere

ARDUINO PROGRAMMERING

ARDUINO PROGRAMMERING ARDUINO PROGRAMMERING Teknologisk Institut Opgaver i programmering af Arduino Indholdsfortegnelse Kapitel 1... 2 Arduino Uno mikrokontroller... 2 Digitalt signal... 3 Analogt signal... 3 Arduino Uno Specifikationer...

Læs mere

I 2 C BUSSEN KØRER MED ARDUINO IND I FORÅRET

I 2 C BUSSEN KØRER MED ARDUINO IND I FORÅRET Mandag den 14 januar 2013 I 2 C BUSSEN KØRER MED ARDUINO IND I FORÅRET OZ1QK Knud Krogsgaard Jensen 1 ARDUINO I 2 C - BUSSEN ELLER?? Plan for I aften: Jeg siger noget i 10 minutter I fortæller lidt om

Læs mere

Intro til AVR. Mads Pedersen, OZ6HR mads@oz6hr.dk

Intro til AVR. Mads Pedersen, OZ6HR mads@oz6hr.dk Intro til AVR Mads Pedersen, OZ6HR mads@oz6hr.dk Projektidé Brug en AVR-microcontroller Mål temperatur vha. temperatursensor Vis på display Send til computer og vis temperatur Slide 2 Plan 27/10-2005:

Læs mere

MultiProgrammer Manual

MultiProgrammer Manual MultiProgrammer Manual MultiProgrammeren bruges til at læse og skrive værdier til ModBus register i LS Controls frekvensomformer E 1045. Dansk Version side 2 til 4 The MultiProgrammer is used for the writing

Læs mere

Ved indkøring påtrykkes en kendt amplitude (HUSK 50 ohms afslutning) og displayet aflæses.

Ved indkøring påtrykkes en kendt amplitude (HUSK 50 ohms afslutning) og displayet aflæses. /* Power Meter 2012 /* Rettet den 13.februar 2013 /* Version 1.2 /* Input medie er en AD8307, som forsynes fra Arduino Uno stabiliserede 5 volt. A/D input er på Arduino analog input pin A0 AREF er tilført

Læs mere

Delay(100); Man skriver fx blot delay(100); for at få Microcontrolleren til at vente 100 ms inden programmet fortsætter.

Delay(100); Man skriver fx blot delay(100); for at få Microcontrolleren til at vente 100 ms inden programmet fortsætter. Funktionen delay() Funktionen delay() er ofte praktisk at bruge i et program i Arduino-verdenen. Man skriver fx blot delay(100); for at få Microcontrolleren til at vente 100 ms inden programmet fortsætter.

Læs mere

Portal Registration. Check Junk Mail for activation . 1 Click the hyperlink to take you back to the portal to confirm your registration

Portal Registration. Check Junk Mail for activation  . 1 Click the hyperlink to take you back to the portal to confirm your registration Portal Registration Step 1 Provide the necessary information to create your user. Note: First Name, Last Name and Email have to match exactly to your profile in the Membership system. Step 2 Click on the

Læs mere

Arduino kursus lektion 3:

Arduino kursus lektion 3: Arduino kursus lektion 3: I denne lektion skal vi lave få en diode til at fade op og ned! Herefter skal denne diode bruges sammen med en lysføler til at lave en smart lysfølsom diode som selv justere lyset

Læs mere

Interrupt - Arduino. Programmering for begyndere Brug af Arduino. Kursusaften 6 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK

Interrupt - Arduino. Programmering for begyndere Brug af Arduino. Kursusaften 6 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK Programmering for begyndere Brug af Arduino Programmeringskursus Interrupt - Arduino EDR Hillerød Knud Krogsgaard Jensen / OZ1QK Interrupts Programmeringskursus Genbrug Interrupts Betyder blot at man afbryder

Læs mere

Lektion 6 / Analog Arduino

Lektion 6 / Analog Arduino 1 Jeremiah Teipen: Electronic Sandwich BSPR11 Lektion 6 / Analog Arduino Mogens Jacobsen / moja@itu.dk Siden sidst 2 Har I fået nogle LEDs til at blinke? Har I brugt kontakter? Hvad har I eksperimenteret

Læs mere

Programmeringskursus Kursusaften 3. Programmering for begyndere Brug af Arduino. Display. Kursusaften 3 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK

Programmeringskursus Kursusaften 3. Programmering for begyndere Brug af Arduino. Display. Kursusaften 3 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK Programmering for begyndere Brug af Arduino Programmeringskursus Display EDR Hillerød Knud Krogsgaard Jensen / OZ1QK Programmering for begyndere Brug af Arduino Programmeringskursus Sidste gang havde vi

Læs mere

Arduino opgaver Teknologi

Arduino opgaver Teknologi : I dette dokument er der inspiration til en række programmerings-opgaver til Arduino. Opgaverne bliver i nogen grad sværere og sværere op gennem opgavenumrene. Opgaverne kan laves ved at opbygge kredsløb

Læs mere

Help / Hjælp

Help / Hjælp Home page Lisa & Petur www.lisapetur.dk Help / Hjælp Help / Hjælp General The purpose of our Homepage is to allow external access to pictures and videos taken/made by the Gunnarsson family. The Association

Læs mere

LCD Character display Intro

LCD Character display Intro LCD Character display Intro Der findes flere typer af LCD karakter-displays, fra forskellige firmaer. Her er vist en type, der er blå. Pins: Nummer 1 fra venstre Her er vist en nærmere beskrivelse af de

Læs mere

CANSAT & ARDUINO step by step

CANSAT & ARDUINO step by step CANSAT & ARDUINO step by step Jens Dalsgaard Nielsen SATLAB Aalborg Universitet Danmark jdn@space.aau.dk 1/51 Arduino CANSAT - MÅL At måle ved hjælp af sensor temperatur, tryk, acceleration, CO2, lys,...

Læs mere

Indholdsfortegnelse Indledning... 2 Projektbeskrivelse... 2 Dette bruger vi i projektet... 2 Komponenter... 2 Software... 2 Kalibrering...

Indholdsfortegnelse Indledning... 2 Projektbeskrivelse... 2 Dette bruger vi i projektet... 2 Komponenter... 2 Software... 2 Kalibrering... Indholdsfortegnelse Indledning... 2 Projektbeskrivelse... 2 Dette bruger vi i projektet... 2 Komponenter... 2 Software... 2 Kalibrering... 3 Kildekoden... 4 Variabler... 4 Setup... 4 Loop... 4 Indledning

Læs mere

ECE 551: Digital System * Design & Synthesis Lecture Set 5

ECE 551: Digital System * Design & Synthesis Lecture Set 5 ECE 551: Digital System * Design & Synthesis Lecture Set 5 5.1: Verilog Behavioral Model for Finite State Machines (FSMs) 5.2: Verilog Simulation I/O and 2001 Standard (In Separate File) 3/4/2003 1 ECE

Læs mere

Brug af digitale ind og udgange

Brug af digitale ind og udgange Programmering for begyndere Brug af Arduino Programmeringskursus Brug af digitale ind og udgange Oversigt over aftenen Digitale ind- og udgange Det er der ikke så meget i: Digitale indgange kan tænde og

Læs mere

Løkkestrukturer mm. Trykknap: Button, Se eksempler / Digital / Button. Decision: If: Version 08/ Arduino, Loops, løkker, programfunktioner mm.

Løkkestrukturer mm. Trykknap: Button, Se eksempler / Digital / Button. Decision: If: Version 08/ Arduino, Loops, løkker, programfunktioner mm. Arduino, Loops, løkker, programfunktioner mm. Links til følgende i dokumentet: Trykknap If, If else, If Else If While, Do While For-Loop PWM Serial Read Funktioner og subrutinerr Switch Case Random number,

Læs mere

Arduinostyret klimaanlæg Afsluttende projekt informationsteknologi B

Arduinostyret klimaanlæg Afsluttende projekt informationsteknologi B Arduinostyret klimaanlæg Afsluttende projekt informationsteknologi B Udarbejdet af: Mathias R W Sørensen, klasse 3.4 Udleveringsdato: 02-03-2012 Afleveringsdato: 11-05-2012 IT-vejleder: Karl G. Bjarnason

Læs mere

PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU

PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU OUTLINE INEFFICIENCY OF ATTILA WAYS TO PARALLELIZE LOW COMPATIBILITY IN THE COMPILATION A SOLUTION

Læs mere

const int disponibel_10= 10; const int disponibel_11= 11; const int disponibel_12= 12; const int blinkled = 13; // pin 13 er LED på NANO

const int disponibel_10= 10; const int disponibel_11= 11; const int disponibel_12= 12; const int blinkled = 13; // pin 13 er LED på NANO Styring_af_analog_repeater_OZ1LN_07-04-2018_v_1_07 device Arduino NANO fra v 1.06_j kræves Starttid bærebølge for valid pilottone ved start fra v 1.06_j kræves ResetTid uden bærebølge ved genstart efter

Læs mere

Start af nyt schematic projekt i Quartus II

Start af nyt schematic projekt i Quartus II Start af nyt schematic projekt i Quartus II Det følgende er ikke fremstillet som en brugsanvisning der gennemgår alle de muligheder der er omkring oprettelse af et Schematic projekt i Quartus II men kun

Læs mere

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1 IBM Network Station Manager esuite 1.5 / NSM Integration IBM Network Computer Division tdc - 02/08/99 lotusnsm.prz Page 1 New esuite Settings in NSM The Lotus esuite Workplace administration option is

Læs mere

AVR 용 USB-ISP V03 ( Model : AD-USBISP V03(-L) )

AVR 용 USB-ISP V03 ( Model : AD-USBISP V03(-L) ) AVR 용 USB-ISP V03 ( Model : AD-USBISP V03(-L) ) April 21, 2009 AD-USBISP V03(-L) 1 AD-USBISP V03개발장비소개 ISP(In System Programming) of AVR In AVR flash memory, user can make, download and test the program

Læs mere

WT-1011RC Programmer User Guide

WT-1011RC Programmer User Guide WT-1011RC Programmer User Guide Firmware Version 1.9 Note: 1. Information in this manual is subject to change without notice and does not represent a commitment of manufacturer. 2. Manufacturer shall not

Læs mere

TinkerCad - Arduino simulator

TinkerCad - Arduino simulator TinkerCad - Arduino simulator Dokument fra H.C.Ørsted Gymnasiet, delt i HTX-Strømspassergruppen. ( Lidt modificeret / Valle ) På tinkercad.com kan man både arbejde med 3D emner, men også elektroniske kredsløb.

Læs mere

AVR MP3 29-05-08 05576 Ingeniørhøjskolen i Århus Michael Kaalund

AVR MP3 29-05-08 05576 Ingeniørhøjskolen i Århus Michael Kaalund AVR MP3 29-05-08 Indholdsfortegnelse 1 Introduktion...2 2 Udviklingsmiljø...2 3 Beskrivelse af systemet...3 3.1 VS1001k...3 3.2 MP3 file formatet...6 4 Konklusion...6 5 Litteratur liste...6 6 Illustrations

Læs mere

Sådan forbindes Arduinoen via et fumlebræt til ATTiny45 chippen.

Sådan forbindes Arduinoen via et fumlebræt til ATTiny45 chippen. Arduino software: https://www.arduino.cc/en/main/software Klaus modeltog, det levende hus: http://www.moppe.dk/levhusel.html TV simulation: http://www.herberts-n-projekt.de/basteleien-1/belebtes-haus/

Læs mere

Netværk & elektronik

Netværk & elektronik Netværk & elektronik Oversigt Ethernet og IP teori Montering af Siteplayer modul Siteplayer teori Siteplayer forbindelse HTML Router (port forwarding!) Projekter Lkaa Mercantec 2009 1 Ethernet På Mars

Læs mere

Det er muligt at chekce følgende opg. i CodeJudge: og

Det er muligt at chekce følgende opg. i CodeJudge: og Det er muligt at chekce følgende opg. i CodeJudge:.1.7 og.1.14 Exercise 1: Skriv en forløkke, som producerer følgende output: 1 4 9 16 5 36 Bonusopgave: Modificer dit program, så det ikke benytter multiplikation.

Læs mere

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Index

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Index DET KONGELIGE Index Download driver... 2 Find the Windows 7 version.... 2 Download the Windows Vista driver.... 4 Extract driver... 5 Windows Vista installation of a printer.... 7 Side 1 af 12 DET KONGELIGE

Læs mere

Arduino opgaver. I dette dokument er der inspiration til en række programmerings-opgaver til Arduino.

Arduino opgaver. I dette dokument er der inspiration til en række programmerings-opgaver til Arduino. : Hyperlinks til forskellige opgaver: #Binære_tal, #Knightrider, #Dot_Matrix-display, #Fra_Debug_vindue_til_Ardu, #Hej_mor, #Pernille, #Interrupts, #Keypad, #LCD, #Morse, #Potentiometer, #RF_ID, #RGB,

Læs mere

Dette korte foredrag er opdelt i 3 dele: 1. ARDUINO i flere versioner, hvad er det? 2. DEMO-video 3. Din fremtidige Oscillator, SI5351A 4.

Dette korte foredrag er opdelt i 3 dele: 1. ARDUINO i flere versioner, hvad er det? 2. DEMO-video 3. Din fremtidige Oscillator, SI5351A 4. APPETITVÆKKEREN OZ6YM, Palle A. Andersen Efteråret 2017 Dette korte foredrag er opdelt i 3 dele: 1. ARDUINO i flere versioner, hvad er det? 2. DEMO-video 3. Din fremtidige Oscillator, SI5351A 4. DEMO-video

Læs mere

CANSAT & ARDUINO step by step

CANSAT & ARDUINO step by step CANSAT & ARDUINO step by step Jens Dalsgaard Nielsen SATLAB Aalborg Universitet Danmark jdn@space.aau.dk 1/45 Arduino CANSAT - MÅL At måle ved hjælp af sensor temperatur, tryk, acceleration, CO2, lys,...

Læs mere

Indholdsfortegnelse:

Indholdsfortegnelse: Dataopsamling Klaus Jørgensen Gruppe. Klaus Jørgensen, Jacob Clausen Og Ole Rud Erhvervs Akademi Fyn Allegade 79 Odense C 5000 fra d 2/12-02 til d 20/12-02 Vejleder: SKH. Forord: Denne rapport omhandler

Læs mere

Opera Ins. Model: MI5722 Product Name: Pure Sine Wave Inverter 1000W 12VDC/230 30A Solar Regulator

Opera Ins. Model: MI5722 Product Name: Pure Sine Wave Inverter 1000W 12VDC/230 30A Solar Regulator Opera Ins Model: MI5722 Product Name: Pure Sine Wave Inverter 1000W 12VDC/230 30A Solar Regulator I.Precautions 1. Keep the product away from children to avoid children playing it as a toy and resultinginpersonalinjury.

Læs mere

Hvor er mine runde hjørner?

Hvor er mine runde hjørner? Hvor er mine runde hjørner? Ofte møder vi fortvivlelse blandt kunder, når de ser deres nye flotte site i deres browser og indser, at det ser anderledes ud, i forhold til det design, de godkendte i starten

Læs mere

QUICK START Updated:

QUICK START Updated: QUICK START Updated: 24.08.2018 For at komme hurtigt og godt igang med dine nye Webstech produkter, anbefales at du downloader den senest opdaterede QuickStart fra vores hjemmeside: In order to get started

Læs mere

Programmering i C Programmering af microcontroller i C (4 af 4) 12. april 2007

Programmering i C Programmering af microcontroller i C (4 af 4) 12. april 2007 Programmering i C Programmering af microcontroller i C (4 af 4) 12. april 2007 Mads Pedersen, OZ6HR mads@oz6hr.dk Plan i dag Afrunding af OZ3VB's program Fra "almindelig C" til "microcontroller C" Lighederne

Læs mere

Programmering i C Intro og grundlæggende C 5. marts 2007

Programmering i C Intro og grundlæggende C 5. marts 2007 Programmering i C Intro og grundlæggende C 5. marts 2007 Mads Pedersen, OZ6HR mads@oz6hr.dk Plan for kurset Ma. 5/3: Ma. 19/3: Ma. 2/4: To. 12/4: Formål, intro, grundlæggende Videre, sprogkonstruktioner

Læs mere

QUICK START Updated: 18. Febr. 2014

QUICK START Updated: 18. Febr. 2014 QUICK START Updated: 18. Febr. 2014 For at komme hurtigt og godt igang med dine nye Webstech produkter, anbefales at du downloader den senest opdaterede QuickStart fra vores hjemmeside: In order to get

Læs mere

Alt elektronik heri er købt via http://dx.com, og arduino udviklingssoftware er hentet fra http://arduino.cc.

Alt elektronik heri er købt via http://dx.com, og arduino udviklingssoftware er hentet fra http://arduino.cc. Få-tiden-til-at-gå-[DIGITAL]-ur =============================== Copyright 2013, Richard Jørgensen. Alle ophavsretlige rettigheder frafaldet 2015. (Kopier og brug som du har lyst.) Forord: ===== Denne vejledning

Læs mere

Der er derfor, for at alle kan sende, kun tilladt, at sende intermitterende. Altså korte pakker. ( Dette skal dog verificeres!!)

Der er derfor, for at alle kan sende, kun tilladt, at sende intermitterende. Altså korte pakker. ( Dette skal dog verificeres!!) MHz KIT Rev: /- Det er ikke tilladt, at man bare udsender radiobølger på den frekvens, man ønsker. Forskellige frekvenser er udlagt til forskellige formål. Nogle til politiet, militæret, FM-radio-transmission,

Læs mere

Delfi Connect. Bruger vejledning 1. TILSLUTNING...2 2. INSTALLATION...3 3. MENUSTRUKTUR...4

Delfi Connect. Bruger vejledning 1. TILSLUTNING...2 2. INSTALLATION...3 3. MENUSTRUKTUR...4 Delfi Connect Bruger vejledning INDHOLD 1. TILSLUTNING...2 2. INSTALLATION...3 3. MENUSTRUKTUR...4 TOOLS...4 4. KOMMUNIKATIONS OPSÆTNING...5 5. GENEREL OPSÆTNING OG DATA KONFIGURATION...6 RECORD...8 BASAL

Læs mere

DK - Quick Text Translation. HEYYER Net Promoter System Magento extension

DK - Quick Text Translation. HEYYER Net Promoter System Magento extension DK - Quick Text Translation HEYYER Net Promoter System Magento extension Version 1.0 15-11-2013 HEYYER / Email Templates Invitation Email Template Invitation Email English Dansk Title Invitation Email

Læs mere

E-PAD Bluetooth hængelås E-PAD Bluetooth padlock E-PAD Bluetooth Vorhängeschloss

E-PAD Bluetooth hængelås E-PAD Bluetooth padlock E-PAD Bluetooth Vorhängeschloss E-PAD Bluetooth hængelås E-PAD Bluetooth padlock E-PAD Bluetooth Vorhängeschloss Brugervejledning (side 2-6) Userguide (page 7-11) Bedienungsanleitung 1 - Hvordan forbinder du din E-PAD hængelås med din

Læs mere

Optimering af fraværsregistrering

Optimering af fraværsregistrering Journal Optimering af fraværsregistrering Eksamensprojekt i Programmering C, klasse 3.4, 2011 AFLEVERET 09-05-2014 Indhold Abstract... Fejl! Bogmærke er ikke defineret. Problemformulering... 2 Produktet...

Læs mere

// inkluder library kode: #include <LiquidCrystal.h> #include <Serial.h> // Initialiser display LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

// inkluder library kode: #include <LiquidCrystal.h> #include <Serial.h> // Initialiser display LiquidCrystal lcd(12, 11, 5, 4, 3, 2); /* OZ1HJR Program til styring af Mercury Motor SM-42BYG011-25 (ROB-09238) med EasyDriver V4.4 (ROB-10267). Når MS1 og MS2 begge er High, er et step (1.8 grader) opløst i 8 mikrostep. Et mikrostep svarer

Læs mere

Privat-, statslig- eller regional institution m.v. Andet Added Bekaempelsesudfoerende: string No Label: Bekæmpelsesudførende

Privat-, statslig- eller regional institution m.v. Andet Added Bekaempelsesudfoerende: string No Label: Bekæmpelsesudførende Changes for Rottedatabasen Web Service The coming version of Rottedatabasen Web Service will have several changes some of them breaking for the exposed methods. These changes and the business logic behind

Læs mere

Operation Manual SMS Air Conditioner Remote Controller Model No.: SR-001

Operation Manual SMS Air Conditioner Remote Controller Model No.: SR-001 Operation Manual SMS Air Conditioner Remote Controller Model No.: SR-001 Ls venligst denne instruktions manual igennem inden brug af produktet Thank you for purchasing our product. This smart unit is not

Læs mere

Hvorfor & Hvordan lære Elever At programmere Arduinoer

Hvorfor & Hvordan lære Elever At programmere Arduinoer Hvorfor & Hvordan lære Elever At programmere Arduinoer Jens Dalsgaard Nielsen JDN / No.1 Teknologi konkurrencen IPADs, mobilos, HTC'er Medicentre JDN / No.2 IPAD, Iphone, HTC,... 1000 Mhz 8000000 kbyte

Læs mere

how to save excel as pdf

how to save excel as pdf 1 how to save excel as pdf This guide will show you how to save your Excel workbook as PDF files. Before you do so, you may want to copy several sheets from several documents into one document. To do so,

Læs mere

Under 'Microsoft Block Editor', klik 'New project' for at åbne block editor-værktøjet.

Under 'Microsoft Block Editor', klik 'New project' for at åbne block editor-værktøjet. 8 3. Nedtælling Nu skal du lave en nedtæller. Det er en god måde at lære variabler på og hvordan du skal kode micro:bit til at gøre dét, du vil have, at den skal vise. Du skal bruge: 1 x BBC micro:bit

Læs mere

WT-1011RC Programmer User Guide

WT-1011RC Programmer User Guide WT-1011RC Programmer User Guide Firmware Version 1.9 Note: 1. Information in this manual is subject to change without notice and does not represent a commitment of manufacturer. 2. Manufacturer shall not

Læs mere

uprocessorens hardware

uprocessorens hardware uprocessorens hardware 8080 Architecture Kernen i en processor er ALUen. Det er den som kan udfører simple regne operationer. De tal den arbejdermed gemmes i en række registre. Når et tal skal hentes eller

Læs mere

Demonstration af transitmetoden

Demonstration af transitmetoden Demonstration af transitmetoden Introduktion: Det kan være svært at observere exoplaneter direkte, derfor benytter man sig i langt højere grad af transitmetoden: Her udnyttes at exoplaneter der bevæger

Læs mere

Vina Nguyen HSSP July 13, 2008

Vina Nguyen HSSP July 13, 2008 Vina Nguyen HSSP July 13, 2008 1 What does it mean if sets A, B, C are a partition of set D? 2 How do you calculate P(A B) using the formula for conditional probability? 3 What is the difference between

Læs mere

Alle dip 1 7 sættes til On for at opnå stand-alone operation fra PC.

Alle dip 1 7 sættes til On for at opnå stand-alone operation fra PC. Hurtig opstart af Infranor CD1 p og pm: Dette er en enkelt og kortfattet vejledning i opsætningen af CD 1 p og pm driver til anvendelse i stand-alone mode. Ingen Profibus forbindelse. For senere opkobling

Læs mere

RF-ID Kompendium. RF-ID & Radio control. Dette kompendium indeholder materiale om RF-ID. Materialet er meget foreløbigt.

RF-ID Kompendium. RF-ID & Radio control. Dette kompendium indeholder materiale om RF-ID. Materialet er meget foreløbigt. Senest redigeret 8. april 2014 RF-ID Kompendium Dette kompendium indeholder materiale om RF-ID Materialet er meget foreløbigt. Derfor modtages rettelser og forslag meget gerne. ------------------------

Læs mere

PMDK PC-Side Basic Function Reference (Version 1.0)

PMDK PC-Side Basic Function Reference (Version 1.0) PMDK PC-Side Basic Function Reference (Version 1.0) http://www.icpdas.com PMDK PC-Side Basic Function Reference V 1.0 1 Warranty All products manufactured by ICPDAS Inc. are warranted against defective

Læs mere

INGENIØRHØJSKOLEN I ÅRHUS Elektro- og IKT-afdelingen. I3PRG3 + I3DTM3 + I3ISY1-3. semester

INGENIØRHØJSKOLEN I ÅRHUS Elektro- og IKT-afdelingen. I3PRG3 + I3DTM3 + I3ISY1-3. semester INGENIØRHØJSKOLEN I ÅRHUS Elektro- og IKT-afdelingen Side 1 af 7 Eksamenstermin: DECEMBER 2003 / JANUAR 2004 Varighed: 4 timer - fra kl. 9.00 til kl. 13.00 Ingeniørhøjskolen udleverer: 3 omslag samt papir

Læs mere

Embedded controller, almen.

Embedded controller, almen. Ver. 310807 s. 1 Bilag 3 Valgfri specialefagskatalog Data- og kommunikationsuddannelsen Undervisningsministeriet September 2007 /Steen Albertsen Ver. 310807 s. 2 Embedded controller, almen. Varighed 1

Læs mere

Terese B. Thomsen 1.semester Formidling, projektarbejde og webdesign ITU DMD d. 02/11-2012

Terese B. Thomsen 1.semester Formidling, projektarbejde og webdesign ITU DMD d. 02/11-2012 Server side Programming Wedesign Forelæsning #8 Recap PHP 1. Development Concept Design Coding Testing 2. Social Media Sharing, Images, Videos, Location etc Integrates with your websites 3. Widgets extend

Læs mere

Wahlberg Surtitle Display

Wahlberg Surtitle Display Wahlberg Surtitle Display (Copyright by WAHLBERG ApS) Bruger manual Software version - 1.88 Produktindhold: Strømkabel USB to RS232 Converter. Undertekst lysavis 2,8 Meter lang / 0,3 Meter høj. Wahlberg

Læs mere

Basic statistics for experimental medical researchers

Basic statistics for experimental medical researchers Basic statistics for experimental medical researchers Sample size calculations September 15th 2016 Christian Pipper Department of public health (IFSV) Faculty of Health and Medicinal Science (SUND) E-mail:

Læs mere

Arduinostyret klimaanlæg Afsluttende projekt programmering C

Arduinostyret klimaanlæg Afsluttende projekt programmering C Arduinostyret klimaanlæg Afsluttende projekt programmering C Udarbejdet af: Mathias R W Sørensen, klasse 3.4 Udleverings-dato: 02-03-2012 Afleverings-dato: 11-05-2012 Programmeringvejleder: Karl G. Bjarnason

Læs mere

The purpose of our Homepage is to allow external access to pictures and videos taken/made by the Gunnarsson family.

The purpose of our Homepage is to allow external access to pictures and videos taken/made by the Gunnarsson family. General The purpose of our Homepage is to allow external access to pictures and videos taken/made by the Gunnarsson family. Formålet med vores hjemmesiden er at gøre billeder og video som vi (Gunnarsson)

Læs mere

Bemærk, der er tale om ældre versioner af softwaren, men fremgangsmåden er uændret.

Bemærk, der er tale om ældre versioner af softwaren, men fremgangsmåden er uændret. Check dine svar på: https://dtu.codejudge.net/02101-e18/ Exercise 1: Installer Eclipse og Java. Dette kan f.eks. gøres ved at følge instuktionerne i dokumentet eclipse intro.pdf som ligger under Fildeling

Læs mere

Programmering i C. Lektion september 2009

Programmering i C. Lektion september 2009 Programmering i C Lektion 1 8. september 2009 Målgruppe Motivation Indhold Form Materiale 2 / 47 Kursusintroduktion 1 Målgruppe 2 Motivation 3 Indhold 4 Form 5 Materiale Målgruppe Motivation Indhold Form

Læs mere

Simulering af en Mux2

Simulering af en Mux2 Simulering af en Mux2 Indhold Start QuartusII op start et nyt projekt.... 2 Fitter opsætning... 6 Opstart af nyt Block diagram... 8 ModelSim... 14 Hvis man vil ændre data grafisk kan det også lade sig

Læs mere

GSM SMS Modem MODEL: SA RTU-1 V1.01

GSM SMS Modem MODEL: SA RTU-1 V1.01 GSM SMS Modem MODEL: SA RTU1 V1.01 Brugervejledning Indgange: Der er fire indgange på modulet. De kan programmeres som normale indgange. De kan programmeres som tæller. Udgange: Der er en udgang på modulet

Læs mere

Andreas Nordbek & Kristoffer Skude Jensen. DMX Styring 31-05-2010. Side 1 af 15

Andreas Nordbek & Kristoffer Skude Jensen. DMX Styring 31-05-2010. Side 1 af 15 Andreas Nordbek & Kristoffer Skude Jensen DMX Styring 31-05-2010 Side 1 af 15 Indholdsfortegnelse 1 Indledning... 3 2 DMX... 4 3 Arkitektur... 5 4 Hardware design... 6 4.1 SPI... 9 5 Software... 10 5.1

Læs mere

Boligsøgning / Search for accommodation!

Boligsøgning / Search for accommodation! Boligsøgning / Search for accommodation! For at guide dig frem til den rigtige vejledning, skal du lige svare på et par spørgsmål: To make sure you are using the correct guide for applying you must answer

Læs mere

Hvorfor & Hvordan lære. at programmere Arduinoer

Hvorfor & Hvordan lære. at programmere Arduinoer Hvorfor & Hvordan lære Jens Dalsgaard Nielsen at programmere Arduinoer JDN / No.1 http://es.aau.dk/staff/jdn/edu/courses/14-2/ars mine slides alle kodeeksempler Et C/arduino kursus http://es.aau.dk/staff/jdn/edu/courses/14-2/imperativ/

Læs mere

Aktivering af Survey funktionalitet

Aktivering af Survey funktionalitet Surveys i REDCap REDCap gør det muligt at eksponere ét eller flere instrumenter som et survey (spørgeskema) som derefter kan udfyldes direkte af patienten eller forsøgspersonen over internettet. Dette

Læs mere

Video Projector Controller. Brugermanual

Video Projector Controller. Brugermanual Jægergårdsgade 152/05A DK-8000 Aarhus C DENMARK WWW.WAHLBERG.DK l Video Projector Controller Brugermanual WWW.WAHLBERG.DK TELEPHONE +45 86 18 14 20 CELL PHONE +45 40 52 20 88 EMAIL: mads@wahlberg.dk Feb

Læs mere

Delta Elektronik A/S - AKD

Delta Elektronik A/S - AKD Delta Elektronik A/S - AKD Hardware og type oversigt Grundlæggende oplysninger med forbindelser Opsætning af IP adresser på drev alle muligheder Gennemgang af WorkBench Up/Down load parametre filer Mest

Læs mere

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato: 14-05-2003

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato: 14-05-2003 Side 1 af 8 Dato: 14-05-2003 Til Sigurd Som aftalt vil jeg her fremsende vores program til vores 80C535 kit og display. Det gik jo ud på at vi skulle starte med at få den til at intialiserer displayet,

Læs mere

ELCANIC A/S. ENERGY METER Type ENG110. Version 3.00. Inkl. PC program: ENG110. Version 3.00. Betjeningsvejledning

ELCANIC A/S. ENERGY METER Type ENG110. Version 3.00. Inkl. PC program: ENG110. Version 3.00. Betjeningsvejledning ELCANIC A/S ENERGY METER Type ENG110 Version 3.00 Inkl. PC program: ENG110 Version 3.00 Betjeningsvejledning 1/11 Generelt: ELCANIC A/S ENERGY METER Type ENG110 er et microprocessor styret instrument til

Læs mere

Modeljernbane elektronik for begyndere...og dem der vil igang med at bygge deres egne dekodere

Modeljernbane elektronik for begyndere...og dem der vil igang med at bygge deres egne dekodere 2015 Modeljernbane elektronik for begyndere...og dem der vil igang med at bygge deres egne dekodere Dette dokument giver en grundlæggende indføring i standard elektronik komponenter og deres virkemåde,

Læs mere

Projekt - RoboNet Del Journal.

Projekt - RoboNet Del Journal. Projekt - RoboNet Del Journal. Udarbejdet af: Klaus Jørgensen. Gruppe: Jacob Clausen, Klaus Jørgensen og Ole Rud It og Elektronikteknolog, 2a Erhvervsakademiet Fyn Udarbejdet i perioden: 20/01-03 03/02-03

Læs mere

Engineering of Chemical Register Machines

Engineering of Chemical Register Machines Prague International Workshop on Membrane Computing 2008 R. Fassler, T. Hinze, T. Lenser and P. Dittrich {raf,hinze,thlenser,dittrich}@minet.uni-jena.de 2. June 2008 Outline 1 Motivation Goal Realization

Læs mere

Status på det trådløse netværk

Status på det trådløse netværk Status på det trådløse netværk Der er stadig problemer med det trådløse netværk, se status her: http://driftstatus.sdu.dk/?f=&antal=200&driftid=1671#1671 IT-service arbejder stadig med at løse problemerne

Læs mere

IPTV Box (MAG250/254) Bruger Manual

IPTV Box (MAG250/254) Bruger Manual IPTV Box (MAG250/254) Bruger Manual Når din STB (Set top Box) starter op, bliver der vist en pop up boks på skærmen, hvor du kan åbne EPG ved at trykke på F2 (Nogle bokse kan fortælle at den har brug for

Læs mere

Programmeringseksempel tl BCxxxx (Seriel)

Programmeringseksempel tl BCxxxx (Seriel) APP-NOTE 600005 Beckhoff Application Note Date: 8/28/2006 Document Status: First Draft Beckhoff Automation Aps Naverland 2, DK-2600 Glostrup Phone +45 43 46 76 20 Fax +45 43 46 63 35 Programmeringseksempel

Læs mere