Ich möchte gerne void motor, void loop und void luefter gleichzeitig laufen lassen.
Wie gehe ich das an? Es sollen auch weitere Threads dazu kommen.
Der Arduino wird doch hoffentlich Leistungsstark genug sein um mehrere Schleifen oder "Programme" gleichzeitig laufen lassen zu können?!
#include <Stepper.h>
#include <math.h>
const int buttonPin2 = 2;
const int buttonPin3 = 3;
const int buttonPin4 = 4;
const int buttonPin5 = 5;
const int ledPin = 7;
const int Lufter = 13;
const int stepsPerRevolution = 2048;
int button2 = 0;
int button3 = 0;
int button4 = 0;
int button5 = 0;
double Thermistor(int RawADC)
{
double Temp;
Temp = log(10000.0*((1024.0/RawADC-1)));
Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp ))* Temp );
Temp = Temp - 273.15;
return Temp;
}
Stepper Stepper1(stepsPerRevolution, 8,10, 9, 11);
void motor()
{
if(Serial.available())
{
int Sbutton2 = Serial.read();
if (Sbutton2 == 'A')
{
for (int i = 0; i < 10000; i++)
{
Stepper1.step(8);
Sbutton2 = Serial.read();
if (Sbutton2 == 'B')
{
break;
}
}
}
if (Sbutton2 == 'C')
{
for (int i = 0; i < 10000; i++)
{
Stepper1.step(-8);
Sbutton2 = Serial.read();
if (Sbutton2 == 'D')
{
break;
}
}
}
}
}
void luefter()
{
int valone = analogRead(0);
double tempone = Thermistor(valone);
int valtwo = analogRead(1);
double temptwo = Thermistor(valtwo);
double unterschied = temptwo - tempone;
Serial.print(tempone);
Serial.print(" ");
Serial.print(temptwo);
Serial.print(" ");
Serial.println(unterschied);
if (unterschied > 2)
{
digitalWrite (Lufter, HIGH);
delay(3000);
}
else if (3 > unterschied && unterschied > 1)
{
for (int i = 0; i < 25; i++)
{
digitalWrite (Lufter, LOW);
delay(70);
digitalWrite (Lufter, HIGH);
delay(50);
}
}
else
{
digitalWrite (Lufter, LOW);
delay(3000);
}
}
void setup()
{
pinMode(buttonPin2, INPUT);
pinMode(buttonPin3, INPUT);
pinMode(buttonPin4, INPUT);
pinMode(buttonPin5, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(Lufter, OUTPUT);
Stepper1.setSpeed(15);
Serial.begin(9600);
}
void loop()
{
button2 = digitalRead(buttonPin2);
button3 = digitalRead(buttonPin3);
button4 = digitalRead(buttonPin4);
button5 = digitalRead(buttonPin5);
if (button2 == HIGH)
{
Stepper1.step(10);
}
if (button3 == HIGH)
{
Stepper1.step(-10);
}
}