Mijn naam is Mark Goeman, geboren op 21 september 1989. In 2010 heb ik mijn MBO-diploma gehaald waarna ik in september 2011 gestart ben op de HZ University of applied sciences aan de opleiding ED&I. Dit is de eerste blog die ik schrijf over een semester van de opleiding ED&I er volgen hierna meerdere blogs. Deze blog gaat over het engineren van een hovercraft met een kanon. Met vriendelijke groet Mark Goeman
maandag 25 juni 2012
cc+ programma aansturing thrust systeem
/* -------------------------------------------------------------
* | aansturing thrust motor |
* | mark goeman |
* -------------------------------------------------------------
*/
int motorPin = 9; // PWM signaal pin.
int relaisPin = 10; // ompool relay uitgang 10
int RCPort = 14; // ingang van PPM signaal.
int speed1 = 0; // op slaan variabele
unsigned long puls = 0; //
void setup()
{
pinMode(relaisPin, OUTPUT); // uitgang relay 10
pinMode(motorPin, OUTPUT); // uitgang PWM signaal 9
pinMode(RCPort, INPUT); // ingang rc poort
}
/*
*
*/
void loop() //
{
int timepulsf = 1000; // maximale puls voorwaarts
int timepulsr = 2000; // maximale puls achterwaarts
int nulpuntmin = 1450; // laagste waarde vooruit
int nulpuntmax = 1600; // hoogste waarde achteruit
int maxspeed = 250; // maximale snelheid vooruit (1040)
int maxreverse = 150; // maximale snelheid achteruit (1945)
int val1= 0; // variable opslag
int val2 = 0; // variable opslag
int valf = 0; // variable opslag
int valr = 0; // variable opslag
puls = pulseIn(RCPort, HIGH, 20000); // puls van ontvanger
val1 = map(valf,0,1024,0,200);
if (puls < timepulsf || puls > timepulsr) // geen signaal
{
digitalWrite(relaisPin, LOW); // relay niet bekrachtiginen );
analogWrite(motorPin, LOW); // stop de motor);
}
else
{
if(puls > nulpuntmax)
{
speed1 = map(puls,nulpuntmax,timepulsr,0,maxreverse-val2); // snelheid achteruit );
digitalWrite(relaisPin, HIGH); // ompolen motor );
analogWrite(motorPin, speed1); // snelheid motor);
}
else if(puls < nulpuntmin)
{
speed1 = map(puls,nulpuntmin,timepulsf,0,maxspeed-val1); // snelehid vooruit);
digitalWrite(relaisPin, LOW); // relay niet bekrachtiginen );
analogWrite(motorPin, speed1); // snelheid motor vooruit );
}
else
{
speed1 = map(puls, nulpuntmin,nulpuntmax,0,0); // stilstand = 0);
digitalWrite(relaisPin, LOW); // relay uit );
analogWrite(motorPin, speed1); // stop de motor);
}
}
}
Abonneren op:
Reacties posten (Atom)
Geen opmerkingen:
Een reactie posten