Skriva ut steg till LCD ändrar RPM på motor (Arduino)
Postat: 16 februari 2013, 22:20:33
Hej, har ett problem med att när jag kör min stegmotor och printar ut antal steg till min LCD så räknar den lite lustigt när den byter från negativt till positivt värde på antalet steg, samt när den lägger till / drar ifrån en nolla (tex. från 9999 till 10000) så ändrar motorn hastighet en aning, vad kan detta vara för nåt fuffens?
Har satt; int manualNoOfSteps = 1;
och resten av koden ser ut såhär;
MVH
Har satt; int manualNoOfSteps = 1;
och resten av koden ser ut såhär;
MVH
Kod: Markera allt
lcd.setCursor(0,0);
lcd.print("Steps:");
delayMicroseconds(200);
val = digitalRead(buttonIN);
if (val == LOW)
{
digitalWrite(powerPin, HIGH);
digitalWrite(dirPin, HIGH);
while (val == LOW) {
digitalWrite(stepperPin, HIGH);
delayMicroseconds(300);
digitalWrite(stepperPin, LOW);
delayMicroseconds(300);
manualNoOfSteps +=1;
if ((manualNoOfSteps % 10) == 0) {
lcd.setCursor(6,0);
lcd.print(manualNoOfSteps);
}
val = digitalRead(buttonIN);
}
powerMillis = millis();
}
//OUT
delayMicroseconds(200);
val = digitalRead(buttonOUT);
if (val == LOW)
{
digitalWrite(powerPin, HIGH);
digitalWrite(dirPin, LOW);
while (val == LOW) {
digitalWrite(stepperPin, HIGH);
delayMicroseconds(300);
digitalWrite(stepperPin, LOW);
delayMicroseconds(300);
manualNoOfSteps -=1;
if ((manualNoOfSteps % 10) == 0) {
lcd.setCursor(6,0);
lcd.print(manualNoOfSteps);
}
val = digitalRead(buttonOUT);
}
powerMillis = millis();
}
// END OF MY OWN BUTTONCODE
// MY OWN DHT TO LCD-CODE
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
float h = dht.readHumidity();
float t = dht.readTemperature();
// check if returns are valid, if they are NaN (not a number) then something went wrong!
if (isnan(t) || isnan(h)) {
lcd.setCursor(1,1);
lcd.println("Failed to read from DHT");
} else {
lcd.setCursor(9,1);
lcd.print(h);
lcd.print(" %");
lcd.setCursor(0,1);
lcd.print(t);
lcd.print(" C");
}}