Smultkalle Skrevet 26. mars 2012 Del Skrevet 26. mars 2012 (endret) Heisann! Holder på med et skoleprosjekt som er programmering av mikrokontrollere. Jeg gjorde det veldig enkelt og brukte en Arduino. Programmeringsspråket er veldig baset på C, så det er utrolig enkelt å kode Jeg kommer til å oppdatere dere med ett nytt prosjekt hver torsdag eller fredag. Hvis du har kommentarer eller tilbakemeldinger, post her Prosjekt #1 - Binær teller med 7-segment display Da var jeg i gang med mitt første prosjekt! Det jeg skal gjøre er å få fire LED-lys til å telle binært til 15, og et 7-segment display til å telle desimalt fra 0-9 og hexadesimalt fra 10-15 (a-f) Orker ikke å lage noen avansert kode så jeg gjør det enkelt: //Hvor fort skal den telle? (1000ms = 1s) int fart = 1000; void setup() { //Setter LED-lys ol. som OUTPUT pinMode(1, OUTPUT); pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); pinMode(12, OUTPUT); pinMode(13, OUTPUT); //Slår av "prikken" på 7-segmentet digitalWrite(9, 0); } void loop() { //Lyser opp hvert enkelt segment og LED-lys // write '0' digitalWrite(2, 1); digitalWrite(3, 1); digitalWrite(4, 1); digitalWrite(5, 1); digitalWrite(6, 1); digitalWrite(7, 1); digitalWrite(8, 0); digitalWrite(9, 0); delay(fart); // write '1' digitalWrite(2, 0); digitalWrite(3, 1); digitalWrite(4, 1); digitalWrite(5, 0); digitalWrite(6, 0); digitalWrite(7, 0); digitalWrite(8, 0); digitalWrite(9, 0); digitalWrite(10, 0); digitalWrite(11, 0); digitalWrite(12, 0); digitalWrite(13, 1); delay(fart); digitalWrite(13, 0); // write '2' digitalWrite(2, 1); digitalWrite(3, 1); digitalWrite(4, 0); digitalWrite(5, 1); digitalWrite(6, 1); digitalWrite(7, 0); digitalWrite(8, 1); digitalWrite(9, 0); digitalWrite(10, 0); digitalWrite(11, 0); digitalWrite(12, 1); digitalWrite(13, 0); delay(fart); digitalWrite(12, 0); // write '3' digitalWrite(2, 1); digitalWrite(3, 1); digitalWrite(4, 1); digitalWrite(5, 1); digitalWrite(6, 0); digitalWrite(7, 0); digitalWrite(8, 1); digitalWrite(9, 0); digitalWrite(10, 0); digitalWrite(11, 0); digitalWrite(12, 1); digitalWrite(13, 1); delay(fart); digitalWrite(12, 0); digitalWrite(12, 0); // write '4' digitalWrite(2, 0); digitalWrite(3, 1); digitalWrite(4, 1); digitalWrite(5, 0); digitalWrite(6, 0); digitalWrite(7, 1); digitalWrite(8, 1); digitalWrite(9, 0); digitalWrite(10, 0); digitalWrite(11, 1); digitalWrite(12, 0); digitalWrite(13, 0); delay(fart); digitalWrite(11, 0); // write '5' digitalWrite(2, 1); digitalWrite(3, 0); digitalWrite(4, 1); digitalWrite(5, 1); digitalWrite(6, 0); digitalWrite(7, 1); digitalWrite(8, 1); digitalWrite(9, 0); digitalWrite(10, 0); digitalWrite(11, 1); digitalWrite(12, 0); digitalWrite(13, 1); delay(fart); digitalWrite(11, 0); digitalWrite(13, 0); // write '6' digitalWrite(2, 1); digitalWrite(3, 0); digitalWrite(4, 1); digitalWrite(5, 1); digitalWrite(6, 1); digitalWrite(7, 1); digitalWrite(8, 1); digitalWrite(9, 0); digitalWrite(10, 0); digitalWrite(11, 1); digitalWrite(12, 1); digitalWrite(13, 0); delay(fart); digitalWrite(11, 0); digitalWrite(12, 0); // write '7' digitalWrite(2, 1); digitalWrite(3, 1); digitalWrite(4, 1); digitalWrite(5, 0); digitalWrite(6, 0); digitalWrite(7, 0); digitalWrite(8, 0); digitalWrite(9, 0); digitalWrite(10, 0); digitalWrite(11, 1); digitalWrite(12, 1); digitalWrite(13, 1); delay(fart); digitalWrite(11, 0); digitalWrite(12, 0); digitalWrite(13, 0); // write '8' digitalWrite(2, 1); digitalWrite(3, 1); digitalWrite(4, 1); digitalWrite(5, 1); digitalWrite(6, 1); digitalWrite(7, 1); digitalWrite(8, 1); digitalWrite(9, 0); digitalWrite(10, 1); digitalWrite(11, 0); digitalWrite(12, 0); digitalWrite(13, 0); delay(fart); digitalWrite(10, 0); // write '9' digitalWrite(2, 1); digitalWrite(3, 1); digitalWrite(4, 1); digitalWrite(5, 0); digitalWrite(6, 0); digitalWrite(7, 1); digitalWrite(8, 1); digitalWrite(9, 0); digitalWrite(10, 1); digitalWrite(11, 0); digitalWrite(12, 0); digitalWrite(13, 1); delay(fart); digitalWrite(10, 0); digitalWrite(13, 0); // write 'a' digitalWrite(2, 1); digitalWrite(3, 1); digitalWrite(4, 1); digitalWrite(5, 0); digitalWrite(6, 1); digitalWrite(7, 1); digitalWrite(8, 1); digitalWrite(9, 0); digitalWrite(10, 1); digitalWrite(11, 0); digitalWrite(12, 1); digitalWrite(13, 0); delay(fart); digitalWrite(10, 0); digitalWrite(12, 0); // write 'b' digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 1); digitalWrite(5, 1); digitalWrite(6, 1); digitalWrite(7, 1); digitalWrite(8, 1); digitalWrite(9, 0); digitalWrite(10, 1); digitalWrite(11, 0); digitalWrite(12, 1); digitalWrite(13, 1); delay(fart); digitalWrite(10, 0); digitalWrite(12, 0); digitalWrite(13, 0); // write 'c' digitalWrite(2, 1); digitalWrite(3, 0); digitalWrite(4, 0); digitalWrite(5, 1); digitalWrite(6, 1); digitalWrite(7, 1); digitalWrite(8, 0); digitalWrite(9, 0); digitalWrite(10, 1); digitalWrite(11, 1); digitalWrite(12, 0); digitalWrite(13, 0); delay(fart); digitalWrite(10, 0); digitalWrite(11, 0); // write 'd' digitalWrite(2, 0); digitalWrite(3, 1); digitalWrite(4, 1); digitalWrite(5, 1); digitalWrite(6, 1); digitalWrite(7, 0); digitalWrite(8, 1); digitalWrite(9, 0); digitalWrite(10, 1); digitalWrite(11, 1); digitalWrite(12, 0); digitalWrite(13, 1); delay(fart); digitalWrite(10, 0); digitalWrite(11, 0); digitalWrite(13, 0); // write 'e' digitalWrite(2, 1); digitalWrite(3, 0); digitalWrite(4, 0); digitalWrite(5, 1); digitalWrite(6, 1); digitalWrite(7, 1); digitalWrite(8, 1); digitalWrite(9, 0); digitalWrite(10, 1); digitalWrite(11, 1); digitalWrite(12, 1); digitalWrite(13, 0); delay(fart); digitalWrite(10, 0); digitalWrite(11, 0); digitalWrite(12, 0); // write 'f' digitalWrite(2, 1); digitalWrite(3, 0); digitalWrite(4, 0); digitalWrite(5, 0); digitalWrite(6, 1); digitalWrite(7, 1); digitalWrite(8, 1); digitalWrite(9, 0); digitalWrite(10, 1); digitalWrite(11, 1); digitalWrite(12, 1); digitalWrite(13, 1); delay(fart); digitalWrite(10, 0); digitalWrite(11, 0); digitalWrite(12, 0); digitalWrite(13, 0); } Legger også ved en film av det ferdige resultatet. http://www.youtube.com/watch?v=kFYxVjgzQls&list=UUfYDPAElZEkWE3cL97LEvGA&index=1&feature=plcp En veldig lang kode, men enkel å forstå. En grei start Er ikke helt sikker på hva jeg skal jobbe med neste uke, men det kommer! Endret 27. mars 2012 av chilloman 2 Lenke til kommentar
Smultkalle Skrevet 15. april 2012 Forfatter Del Skrevet 15. april 2012 (endret) Da har det vært en stund siden sist, på grunn av ferie og andre greier Prosjekt #2 - Processing og Arduino Denne uken har jeg jobbet med kommunikasjon mellom en Arduino og Processing. Processing er et programmeringsspråk for elektronisk kunst og design. Man kan sende ut signaler gjennom COM porter som Arduino bruker. Hva har jeg gjort? Ja, jeg har jobbet med et program der du holder musen over et område, og et LED lys på Arduinoen lyser. Ganske enkelt igrunn. Her er kildekoden og noen bilder: Processing: import processing.serial.*; float boxX; float boxY; int boxSize = 20; boolean mouseOverBox = false; Serial port; void setup() { size(200, 200); boxX = width/2.0; boxY = height/2.0; rectMode(RADIUS); println(Serial.list()); port = new Serial(this, Serial.list()[0], 9600); } void draw() { background(0); if (mouseX &--#62; boxX-boxSize && mouseX &--#60; boxX+boxSize && mouseY &--#62; boxY-boxSize && mouseY &--#60; boxY+boxSize) { mouseOverBox = true; stroke(255); fill(153); port.write('H'); text("LED = ON", 75, 146); } else { stroke(153); fill(153); port.write('L'); text("LED = OFF", 74, 146); mouseOverBox = false; } rect(boxX, boxY, boxSize, boxSize); } Arduino: const int ledPin = 13; const int ledPin2 = 12; int incomingByte; void setup() { Serial.begin(9600); pinMode(ledPin, OUTPUT); } void loop() { if (Serial.available() &--#62; 0) { incomingByte = Serial.read(); if (incomingByte == 'H') { digitalWrite(ledPin, HIGH); } if (incomingByte == 'L') { digitalWrite(ledPin, LOW); } } } Det var alt fra meg for denne gang, kommer forhåpentligvis et nytt prosjekt på torsdag eller fredag, stay tuned! Husk å kommentere i kommentartråden! Endret 15. april 2012 av chilloman Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå