Stap 6: De Code
De originele code is van een internet zoeken die is vermeld in de commentaren
Ik heb het sterk aangepast
Sommige kwesties:
zonder een Hallsensor, zal een moeten spelen met de tijd tussen woorden om een redelijk stabiel beeld
Arduino fiets POV
//
door Scott Mitchell
www.OpenObject.org
Open Source stedenbouw
//
Copyright (C) 2008 Scott Mitchell 12-10-2008
//
Dit programma is vrije software: je kunt het herdistribueren en/of wijzigen
het onder de voorwaarden van de GNU General Public License zoals gepubliceerd door
de Free Software Foundation, hetzij versie 3 van de licentie, of
(naar uw keuze) een latere versie.
//
//============================================================
6/2011 sterk veranderd door c. Dubois voor mijn POV-project
Hall-sensor is een schakelaar zodat ik andere code voor het gebruikt
ook gebruikt een font.h die ik gevonden
// ------------------------------------------------------------
definiëren van het alfabet
#include "font.h"
definiëren van de Arduino LED pinnen in gebruik
Const int [LEDpins] = {}
1,2,3,4,5,6,7};
aantal LED 's
Const int charHeight = sizeof(LEDpins);
Const int charWidth = 5;
int var = 0;
int worddelay = 50000;
sensor setup
Const int sensorPIN = 0; definiëren van de pin van de Arduino sensor
Boole sensorFlag = false; winkels sensor staat
int sensVal; variabele de waarde afkomstig van de sensor opslaan
const char textString [] = "CLAIRE";
const char textString2 [] = "is een";
const char textString3 [] = "Honing";
const char textString4 [] = "BADGER";
VOID Setup
{
pinMode (13, OUTPUT);
pinMode (1, OUTPUT);
pinMode (2, OUTPUT);
pinMode (3, OUTPUT);
pinMode (4, OUTPUT);
pinMode (5, OUTPUT);
pinMode (6, OUTPUT);
pinMode (7, OUTPUT);
Serial.begin(9600);
}
void loop
{
Led inschakelen voor een cirkel in Midden en bewijs dat arduino wordt aangedreven
digitalWrite (13, hoge); de LED aangezet
sensVal = analogRead(sensorPIN); Lees de Hall Effect Sensor
Serial.println(sensVal);
vertraging (500);
Als (sensVal! = 1023) {}
Inschakelen van de LED's om te testen dat ze werken en cirkels maken
digitalWrite (1, hoog); de LED aangezet
delay(500);
digitalWrite (2, HIGH); de LED aangezet
delay(500);
digitalWrite (3, hoge); de LED aangezet
delay(500);
digitalWrite (4, HIGH); de LED aangezet
delay(500);
digitalWrite (5, hoge); de LED aangezet
delay(500);
digitalWrite (6, hoge); de LED aangezet
delay(500);
digitalWrite (7, hoge); de LED aangezet
vertragen om te laten de ventilator krijgen om te versnellen
vertraging (3000);
afdrukken van elke letter van het textString
dan duidelijk en print textstring2
var = 0;
terwijl (var < 200) {}
Doe iets repetitieve 150 keer
voor (int k = 0; k < sizeof(textString); k ++) {}
printLetter(textString[k]);
}
var ++;
spatie tussen woorden
delayMicroseconds(worddelay);
}
Schakel de LEDs
digitalWrite (1, laag); verrekening van de LED
digitalWrite (2, laag); verrekening van de LED
digitalWrite (3, laag); verrekening van de LED
digitalWrite (4, laag); verrekening van de LED
digitalWrite (5, laag); verrekening van de LED
digitalWrite (6, laag); verrekening van de LED
digitalWrite (7, laag); verrekening van de LED
de wachttijd tussen de zinnen
vertraging (500);
// ------------------------------
--nu tweede zin---
var = 0;
terwijl (var < 100) {}
Doe iets repetitieve 75 keer
voor (int k = 0; k < sizeof(textString2); k ++) {}
printLetter(textString2[k]);
}
var ++;
spatie tussen woorden
delayMicroseconds(worddelay);
}
Schakel de LEDs
digitalWrite (1, laag); verrekening van de LED
digitalWrite (2, laag); verrekening van de LED
digitalWrite (3, laag); verrekening van de LED
digitalWrite (4, laag); verrekening van de LED
digitalWrite (5, laag); verrekening van de LED
digitalWrite (6, laag); verrekening van de LED
digitalWrite (7, laag); verrekening van de LED
de wachttijd tussen de zinnen
vertraging (500);
--nu derde zin doen---
var = 0;
terwijl (var < 100) {}
Doe iets repetitieve 200 keer
voor (int k = 0; k < sizeof(textString3); k ++) {}
printLetter(textString3[k]);
}
var ++;
spatie tussen woorden
delayMicroseconds(worddelay);
}
Schakel de LEDs
digitalWrite (1, laag); verrekening van de LED
digitalWrite (2, laag); verrekening van de LED
digitalWrite (3, laag); verrekening van de LED
digitalWrite (4, laag); verrekening van de LED
digitalWrite (5, laag); verrekening van de LED
digitalWrite (6, laag); verrekening van de LED
digitalWrite (7, laag); verrekening van de LED
de wachttijd tussen de zinnen
vertraging (250);
--nu vierde zin doen---
var = 0;
terwijl (var < 175) {}
Doe iets repetitieve 200 keer
voor (int k = 0; k < sizeof(textString4); k ++) {}
printLetter(textString4[k]);
}
var ++;
spatie tussen woorden
delayMicroseconds(worddelay);
}
}
// }
// ------------------- Functions _________________
VOID printLetter(char ch)
{
Zorg ervoor dat het teken binnen de grenzen van het alfabet (gedefinieerd door het font.h-bestand)
Als het niet is, maken het een leeg teken
Als (ch < 32 || ch > 126) {}
CH = 32;
}
aftrekken van de spatie (zet het ASCII-getal om het indexnummer van het lettertype)
CH-= 32;
elke byte van de karakter array te doorlopen
for (int i = 0; ik < charWidth; i ++) {}
byte b = lettertype [ch] [i];
beetje shift via de byte en output naar de pin
for (int j = 0; j < charHeight; j ++) {}
digitalWrite (LEDpins [j]!! (b & (1 << j)));
}
ruimte tussen kolommen
delayMicroseconds(425);
}
Schakel de LEDs
digitalWrite (1, laag); de LED aangezet
digitalWrite (2, laag); de LED aangezet
digitalWrite (3, laag); de LED aangezet
digitalWrite (4, laag); de LED aangezet
digitalWrite (5, laag); de LED aangezet
digitalWrite (6, laag); de LED aangezet
digitalWrite (7, laag); de LED aangezet
ruimte tussen letters
delayMicroseconds(2600);
}