Hier klikken om te bewerken.
De
potmeters zijn aangesloten op A0 en A1. Dit zijn analoge poorten,
hiermee kan ik op schaal van 0-1023 (1024 standen) uitlezen. De
motorsnelheid staat op pin 11 met een schaal van 0-255 (256 standen).
De links rechts is aangesloten op pin 13, dit is een analoge output
in verband met dat ik er alleen aan en uit voor gebruik.
Aansluitingen
PinPot1 staat op de as aangesloten van de motor
Printplaat nodig!
Motor 3V nodig
Arduino
Pin 11 = Transistor
Pin 13 = Relais
GRD = Min van de 5V
Motor
Aansluiting 1 = het eerste P contact van het relais
Aansluiting 2 = het eerste P contact van het relais
+ = 5V
- = 0V (+ de GRD van de Arduino)
Printplaat nodig!
Motor 3V nodig
Arduino
Pin 11 = Transistor
Pin 13 = Relais
GRD = Min van de 5V
Motor
Aansluiting 1 = het eerste P contact van het relais
Aansluiting 2 = het eerste P contact van het relais
+ = 5V
- = 0V (+ de GRD van de Arduino)
De Code van de Arduino
//This code is written by Jelle Wie WWW.Jellewie.Weebly.Com
//
int PinPot1 = 1;
int PinPot2 = 0;
int Graden = 0;
int GaNaarGraden = 0;
int Afwijking = 0;
int Speed = 0;
int LinksRechts = 13;
int AanUit = 11;
int TEMPLinksRechts = 0;
void setup() {
Serial.begin(9600);
pinMode(LinksRechts, OUTPUT);
}
void loop() {
Graden = analogRead(PinPot1);
GaNaarGraden = analogRead(PinPot2);
Graden = map(Graden, 0, 1023, 0, 255);
GaNaarGraden = map(GaNaarGraden, 0, 1023, 0, 255);
Afwijking = GaNaarGraden - Graden;
// Motor snelheid, versnel als hij verder weg is, en vertraag als hij dichterbij komt
Speed = Afwijking ;
// Schrijf of de motor links of rechtsom moet gaan
if (Speed < 0) {
digitalWrite(LinksRechts, HIGH);
TEMPLinksRechts = 1;
} else {
TEMPLinksRechts = 2;
digitalWrite(LinksRechts, LOW);
}
// Motorsnelheid altijd positief
Speed = abs (Speed);
// Stop als hij dichtbij is, en geef een minimum snelheid
if (Speed < 20) { Speed = 0; }
// Put another factor
else Speed = Speed + 60;
// Set max speed to 3V
if (Speed > 150) { Speed = 150; }
// Schrijf de snelheid naar de motor
analogWrite(AanUit, Speed);
// Vertraging zodat het programma optimaal werkt
delay(100);
}
//
int PinPot1 = 1;
int PinPot2 = 0;
int Graden = 0;
int GaNaarGraden = 0;
int Afwijking = 0;
int Speed = 0;
int LinksRechts = 13;
int AanUit = 11;
int TEMPLinksRechts = 0;
void setup() {
Serial.begin(9600);
pinMode(LinksRechts, OUTPUT);
}
void loop() {
Graden = analogRead(PinPot1);
GaNaarGraden = analogRead(PinPot2);
Graden = map(Graden, 0, 1023, 0, 255);
GaNaarGraden = map(GaNaarGraden, 0, 1023, 0, 255);
Afwijking = GaNaarGraden - Graden;
// Motor snelheid, versnel als hij verder weg is, en vertraag als hij dichterbij komt
Speed = Afwijking ;
// Schrijf of de motor links of rechtsom moet gaan
if (Speed < 0) {
digitalWrite(LinksRechts, HIGH);
TEMPLinksRechts = 1;
} else {
TEMPLinksRechts = 2;
digitalWrite(LinksRechts, LOW);
}
// Motorsnelheid altijd positief
Speed = abs (Speed);
// Stop als hij dichtbij is, en geef een minimum snelheid
if (Speed < 20) { Speed = 0; }
// Put another factor
else Speed = Speed + 60;
// Set max speed to 3V
if (Speed > 150) { Speed = 150; }
// Schrijf de snelheid naar de motor
analogWrite(AanUit, Speed);
// Vertraging zodat het programma optimaal werkt
delay(100);
}