Stap 3: De Arduino
Nadat alles 3D afgedrukt is, kunnen we overgaan tot de componenten waarmee deze baby uit te voeren. We hebben een micro-controller, die is de arduino uno, evenals onze breadboard en 9v batterij.
Ik heb een schematische voorstelling van hoe alles moet leggen uit op fritzing, dus check out de volgende link om te zien hoe zet het samen. Zorg ervoor dat u fritzing gedownload, zodat je in staat om het schema weer te geven. Ik heb ook geupload de arduino-code die nodig is om alles functioneren, maar ik zal hier dieper ingaan.
http://fritzing.org/projects/Variable-Speed-Tablet...
De 9v batterij zal haar bevoegd worden afgetapt, indien aangesloten op de arduino, dus laat het inplugged totdat het nodig is voor testdoeleinden.
Hieronder is de code voor de arduino met mijn opmerkingen die elk gedeelte doet uit te leggen.
CODE VOOR ARDUINO:
Wij zullen de motor van pin 9 beheert. Dit moet een van de PWM-kan pinnen zodat we de snelheid kan variëren.
Stel eerst omhoog de-constanten zijn.
Const int motorPin = 9; Const int motorSpeedIn = 0; Const int ledPin = 10; Const int ledDial = 2; Dit zijn alle waarden van de pin, elk nummer wordt geassocieerd met een pin-functie.
int ledBright; int motorSpeed; Dit zijn gewoon waarden die aangewezen worden zal later, en gewoon gebruikt als tijdelijke aanduidingen hier.
void setup / / tot oprichting van de code. Dit is het toestaan van onze pins lezen en verzenden van gegevens, afhankelijk van hoe wij hen oriënteren.
{
De motor pin ingesteld te worden een vermogen:
pinMode (motorPin, OUTPUT); pinMode (ledPin, OUTPUT); pinMode (ledDial, INPUT); pinMode (motorSpeedIn, INPUT);
De seriële poort instellen:
Serial.begin(9600); }
void loop / / hier is de werkelijke lus-code. Aangezien de potentiometers digitale signalen, moeten we dat omzetten in een analoge nummer voor onze motor en de LED te lezen, zodat we dat getal door 4 delen. PWM kan 0-255 alleen lezen
{
motorSpeed = analogRead(motorSpeedIn);
Serial.println(motorSpeed); Deze code is uitgecommentarieerd, maar als u controleren uw numerieke waarden wordt ingevoerd wilt, dit zal de uitgang van de nummers ontvangen in de seriële monitor voor u controleren.
motorSpeed = motorSpeed/4;
Serial.println(motorSpeed);
analogWrite(motorPin,motorSpeed);
ledBright = analogRead(ledDial);
ledBright = ledBright/4;
analogWrite(ledPin,ledBright);
delay(100); Extra vertraging van 100ms over geen misverstanden gebeuren voor sommige reden met een momentane waarde.
}