Reputation: 1
I have been working with this simple program trying to fix this error for way too long. I am working with an Arduino and I just want to make an easy temperature monitor to turn some switches on and off. I keep getting the error "Function-definition is not allowed here before '{' token." If someone who knows more than I do and can help me out, that would be great!
float temp;
void setup(){
pinMode(13, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(7, INPUT);
pinMode(0, INPUT);
Serial.begin(9600);
}
void highHeat(){
temp = analogRead(0);
temp = (5.0*temp*100.0/1024.0);
if (temp > 79)
{
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(13, LOW);
}
if (temp < 78)
{
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(13, HIGH);
}
delay(10000);
}
void lowHeat(){
temp = analogRead(0);
temp = (5.0*temp*100.0/1024.0);
if (temp > 26)
{
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(13, LOW);
}
if (temp < 25)
{
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(13, HIGH);
}
delay(10000);
}
void loop(){
if (6 == HIGH)
{
delay(2000);
if (6 == HIGH)
{
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(500);
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(500);
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(500);
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
void loop(){
lowHeat();
}
}
if (6 == LOW)
{
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(500);
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
void loop(){
highHeat();
}
}
}
}
P.S. I've done some searching and found many posts with the same title, but they never seem to be relevant to my problem, so I just thought I would ask for a little help.
Upvotes: 0
Views: 2545
Reputation: 992857
You have:
digitalWrite(13, LOW);
void loop(){
lowHeat();
}
The compiler is complaining about the void loop()
there. You can't define a function in the middle of another one.
Upvotes: 2