Can't get time right with arduino? - arduino

I have a small 7 segment led display and I wondered if I could get it to show me the last digit of the minute. Downloaded the Time library for Arduino and I tried several methods, with switch case and if else if, but all give the same result, the LED display shows only 0... Could you pinpoint what I did wrong?
#include <Time.h>
#include <TimeLib.h>
int led1=2;
int led2=3;
int led3=4;
int led4=5;
int led5=6;
int led6=7;
int led7=8;
int led8=9;
void setup() {
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
pinMode(led5,OUTPUT);
pinMode(led6,OUTPUT);
pinMode(led7,OUTPUT);
pinMode(led8,OUTPUT);
}
void loop(){
time_t t=minute();
int digit1=t%10;
if(digit1==1){
digitalWrite(led5, HIGH);
digitalWrite(led3, HIGH);
}else if(digit1==2)
{
digitalWrite(led6, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
} else if(digit1==3)
{
digitalWrite(led4, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led2, HIGH);
}else if(digit1==4)
{
digitalWrite(led4, HIGH);
digitalWrite(led7, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led3, HIGH);
}else if(digit1==5)
{
digitalWrite(led6, HIGH);
digitalWrite(led7, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led2, HIGH);
}else if(digit1==6)
{
digitalWrite(led6, HIGH);
digitalWrite(led7, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
}else if(digit1==7)
{
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led3, HIGH);
}else if(digit1==8)
{
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led7, HIGH);
}else if(digit1==9)
{
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led7, HIGH);
}else if(digit1==0)
{
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led7, HIGH);
}
}

You never write any of the pins to go low. When the next minute hits, the proper LEDS are probably turning on, but the old ones don't go off, so you don't see any change.
To avoid turning all the LEDS off and on again every cycle, I would store the last known digit and at each loop iteration, see if the digit has changed. If it has, turn off all of the lights and then run the code you posted here.

You haven't added low conditions hence when the pin is going high it is remaining high. Also, I have checked and I think that your wiring is not correct. I'm posting complete code below and connections accordingly.
#include <Time.h>
#include <TimeLib.h>
int a = 2;
int b = 3;
int c = 4;
int d = 5;
int e = 6;
int f = 7;
int g = 8;
int dp = 9;
void setup() {
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
pinMode(led5,OUTPUT);
pinMode(led6,OUTPUT);
pinMode(led7,OUTPUT);
pinMode(led8,OUTPUT);
}
void loop(){
time_t t=minute();
int digit1=t%10;
if(digit1==0) {
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, LOW);
digitalWrite(dp, LOW);
}
else if(digit1==1) {
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
digitalWrite(dp, LOW);
}
else if(digit1==2) {
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
digitalWrite(dp, LOW);
}
else if(digit1==3) {
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
digitalWrite(dp, LOW);
}
else if(digit1==4) {
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
digitalWrite(dp, LOW);
}
else if(digit1==5) {
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
digitalWrite(dp, LOW);
}
else if(digit1==6) {
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
digitalWrite(dp, LOW);
}
else if(digit1==7) {
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
digitalWrite(dp, LOW);
}
else if(digit1==8) {
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
digitalWrite(dp, LOW);
}
else if(digit1==9) {
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
digitalWrite(dp, LOW);
}
}

Related

HC-05 to control car has delays and disconnection

I made some simple code and car using 1 arduino, 1 hc-05, 2 L298N, and 4 batteries. I control them with the app Bluetooth RC controller on android. When I send a command on the app, the car sometimes has some delays, varying 4-8 seconds, sometimes it disconnects completely. Here is the code. I don't think the code has any problem and my friend brought up that the problem might be the distortion from a magnetic field because I use some lead to weld some wires
char t;
int fr1= 2;
int fr2=3;
int fl1=12;
int fl2=13;
int br1=4;
int br2=5;
int bl1 = 7;
int bl2=8;
int Mfr=6;//speed setting
int Mfl=9;
int Mbr=10;
int Mbl=11;
float Speed;
void setup() {
pinMode(fr1,OUTPUT); //fr1
pinMode(fr2,OUTPUT); //fr2
pinMode(fl1,OUTPUT); //fl1
pinMode(fl2,OUTPUT); //fl2
pinMode(br1,OUTPUT); //br1
pinMode(br2,OUTPUT); //br2
pinMode(bl1,OUTPUT); //bl1
pinMode(bl2,OUTPUT); //bl2
Serial.begin(9600);
}
void loop() {
if(Serial.available()){
t = Serial.read();
Serial.println(t);
}
if(t == 'F'){
digitalWrite(fr1, LOW);
digitalWrite(fr2, HIGH);
digitalWrite(fl1, LOW);
digitalWrite(fl2, HIGH);
digitalWrite(br1, LOW);
digitalWrite(br2, HIGH);
digitalWrite(bl1, LOW);
digitalWrite(bl2, HIGH);
}
else if(t == 'B'){
digitalWrite(fr1, HIGH);
digitalWrite(fr2, LOW);
digitalWrite(fl1, HIGH);
digitalWrite(fl2, LOW);
digitalWrite(br1, HIGH);
digitalWrite(br2, LOW);
digitalWrite(bl1, HIGH);
digitalWrite(bl2, LOW);
}
else if(t == 'L'){
digitalWrite(fr1, LOW);
digitalWrite(fr2, HIGH);
digitalWrite(fl1, HIGH);
digitalWrite(fl2, LOW);
digitalWrite(br1, HIGH);
digitalWrite(br2, LOW);
digitalWrite(bl1, LOW);
digitalWrite(bl2, HIGH);
}
else if(t == 'R'){
digitalWrite(fr1, HIGH);
digitalWrite(fr2, LOW);
digitalWrite(fl1, LOW);
digitalWrite(fl2, HIGH);
digitalWrite(br1, LOW);
digitalWrite(br2, HIGH);
digitalWrite(bl1, HIGH);
digitalWrite(bl2, LOW);
}
else if(t == 'S'){ //STOP (all motors stop)
digitalWrite(fr1, LOW);
digitalWrite(fr2, LOW);
digitalWrite(fl1, LOW);
digitalWrite(fl2, LOW);
digitalWrite(br1, LOW);
digitalWrite(br2, LOW);
digitalWrite(bl1, LOW);
digitalWrite(bl2, LOW);
}
}
Is it possible its gotten flooded by bytes, serial.read had to read? I imagine maybe the app is sending a lot of characters to the Arduino, is it possible to check/apply a (short) delay in that app?

Why did my arduino program suddenly stop working?

So I have a project to make for school in which we had to make an arduino project from scratch. I'm relatively new to arduino and his coding and made a simple, yet fun project. I had the idea of making a sort of safe where you have to enter a key and after that, use a potentiometer to make the right combination to open the safe. I don't know what I did wrong but when I uploaded it to my arduino, the program got to the first lines and stopped after printing the first line to the serial monitor. There the program is stuck and doesn't do anything. The weird thing is that it worked 5 minutes ago but now it just wont. Can anyone help me please? My deadline is in a few hours and I can't fix it... Here is the code and a schematic:
Picture of the setup. The 2 resistors on the left are 1k, the other 2 are 10k.
//variabelen
const int pot = A0;
const int pinA = 6;
const int pinB = 5;
const int pinC = 2;
const int pinD = 3;
const int pinE = 4;
const int pinF = 7;
const int pinG = 8;
const int pinP = 9;
const int enter = 11;
const int reset = 12;
byte enterState = 0;
byte lastEnterState = 0;
byte resetState = 0;
byte lastResetState = 0;
int enterTimer = 0;
String wachtwoord;
String ingegeven = "";
//setup
void setup(){
pinMode(pinA, OUTPUT);
pinMode(pinB, OUTPUT);
pinMode(pinC, OUTPUT);
pinMode(pinD, OUTPUT);
pinMode(pinE, OUTPUT);
pinMode(pinF, OUTPUT);
pinMode(pinG, OUTPUT);
pinMode(pinP, OUTPUT);
pinMode(enter, INPUT);
pinMode(reset, INPUT);
Serial.begin(9600);
Serial.println("Geef een wachtwoord op voor de safe.");
wachtwoord = Serial.read();
}
//eigen methoden
void dispChar(int getal){
switch(getal){
case 0:
digitalWrite(pinA, LOW);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
digitalWrite(pinE, LOW);
digitalWrite(pinF, LOW);
digitalWrite(pinG, HIGH);
break;
case 1:
digitalWrite(pinA, HIGH);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, HIGH);
break;
case 2:
digitalWrite(pinA, LOW);
digitalWrite(pinB, LOW);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, LOW);
digitalWrite(pinE, LOW);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, LOW);
break;
case 3:
digitalWrite(pinA, LOW);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, LOW);
break;
case 4:
digitalWrite(pinA, HIGH);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, LOW);
digitalWrite(pinG, LOW);
break;
case 5:
digitalWrite(pinA, LOW);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, LOW);
digitalWrite(pinG, LOW);
break;
case 6:
digitalWrite(pinA, LOW);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
digitalWrite(pinE, LOW);
digitalWrite(pinF, LOW);
digitalWrite(pinG, LOW);
break;
case 7:
digitalWrite(pinA, LOW);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, HIGH);
break;
case 8:
digitalWrite(pinA, LOW);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
digitalWrite(pinE, LOW);
digitalWrite(pinF, LOW);
digitalWrite(pinG, LOW);
break;
case 9:
digitalWrite(pinA, LOW);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, LOW);
digitalWrite(pinG, LOW);
break;
}
}
//Kijk of enter knop is ingedrukt
void onEnter(){
enterState = digitalRead(enter);
if(enterState == HIGH){
enterTimer++;
if(enterState != lastEnterState){
ingegeven += map(analogRead(pot), 0, 1023, 0, 9);
Serial.println(ingegeven);
enterTimer = 0;
}
}
delay(50); //Voorkomt bounce.
if(enterTimer > 50){
Serial.println("\nRESET");
enterTimer = 0;
ingegeven = "";
}
lastEnterState = enterState;
check();
}
bool check(){
if(ingegeven.equals(wachtwoord)){
return true;
} else{
if(ingegeven.length() > wachtwoord.length()){
Serial.println("FOUT!");
ingegeven = "";
return false;
}
}
}
//Kijk of reset knop is ingedrukt
void onReset(){
resetState = digitalRead(reset);
if(resetState != lastResetState){
if(resetState == HIGH){
ingegeven = "";
Serial.println("Geef een wachtwoord op voor de safe.");
wachtwoord = Serial.read();
}
}
delay(50); //Voorkomt bounce.
lastResetState = resetState;
}
//loop
void loop(){
while(!check()){
int getal = map(analogRead(pot), 0, 1023, 0, 9);
digitalWrite(pinP, HIGH);
dispChar(getal);
onEnter();
onReset();
}
Serial.println("CODE CORRECT!")
}
Thanks for the help!!

Arduino IR receiver and loops

so i built a small shield for arduino mega. it has 2 red leds, 2 blue leds, 2 green leds, a buzzer, an rgb led and an IR receiver. Im trying to simulate ON and OFF with the rgb led, and when it is on you can perform actions based on the button you press on the emitter. Everything works more or less as expected but i dont know how to exit the loop on each button action. Here s my code:
int receiver = 9;
IRrecv irrecv(receiver);
decode_results results;
void translateIR()
{
switch(results.value)
{
case 0xFFA25D: power(); break;
case 0xFF30CF: button1(); break;
case 0xFF18E7: button2(); break;
case 0xFF7A85: button3(); break;
case 0xFF10EF: button4(); break;
case 0xFF38C7: button5(); break;
case 0xFF5AA5: button6(); break;
case 0xFF42BD: button7(); break;
case 0xFF4AB5: button8(); break;
case 0xFF52AD: button9(); break;
default:;
}
}
void button1()
{
digitalWrite(LEDR1, LOW);
digitalWrite(LEDR2, LOW);
digitalWrite(LEDB1, LOW);
digitalWrite(LEDB2, LOW);
digitalWrite(LEDG1, LOW);
digitalWrite(LEDG2, LOW);
digitalWrite(buzzer,LOW);
do{
digitalWrite(LEDR1, HIGH);
digitalWrite(LEDR2, HIGH);
digitalWrite(LEDB1, LOW);
digitalWrite(LEDB2, LOW);
digitalWrite(LEDG1, LOW);
digitalWrite(LEDG2, LOW);
digitalWrite(buzzer,HIGH);
delay(200);
digitalWrite(LEDR1, LOW);
digitalWrite(LEDR2, LOW);
digitalWrite(LEDB1, HIGH);
digitalWrite(LEDB2, HIGH);
digitalWrite(LEDG1, LOW);
digitalWrite(LEDG2, LOW);
digitalWrite(buzzer,LOW);
delay(200);
} while(1);
}
void button2()
{
digitalWrite(LEDR1, LOW);
digitalWrite(LEDR2, LOW);
digitalWrite(LEDB1, LOW);
digitalWrite(LEDB2, LOW);
digitalWrite(LEDG1, LOW);
digitalWrite(LEDG2, LOW);
digitalWrite(buzzer,LOW);
do{
digitalWrite(LEDR1, HIGH);
digitalWrite(LEDR2, LOW);
digitalWrite(LEDB1, LOW);
digitalWrite(LEDB2, LOW);
digitalWrite(LEDG1, LOW);
digitalWrite(LEDG2, LOW);
digitalWrite(buzzer,HIGH);
delay(50);
digitalWrite(LEDR1, LOW);
digitalWrite(LEDR2, HIGH);
digitalWrite(LEDB1, LOW);
digitalWrite(LEDB2, LOW);
digitalWrite(LEDG1, LOW);
digitalWrite(LEDG2, LOW);
digitalWrite(buzzer,LOW);
delay(50);
digitalWrite(LEDR1, LOW);
digitalWrite(LEDR2, LOW);
digitalWrite(LEDB1, HIGH);
digitalWrite(LEDB2, LOW);
digitalWrite(LEDG1, LOW);
digitalWrite(LEDG2, LOW);
digitalWrite(buzzer,HIGH);
delay(50);
digitalWrite(LEDR1, LOW);
digitalWrite(LEDR2, LOW);
digitalWrite(LEDB1, LOW);
digitalWrite(LEDB2, HIGH);
digitalWrite(LEDG1, LOW);
digitalWrite(LEDG2, LOW);
digitalWrite(buzzer,LOW);
delay(50);
digitalWrite(LEDR1, LOW);
digitalWrite(LEDR2, LOW);
digitalWrite(LEDB1, LOW);
digitalWrite(LEDB2, LOW);
digitalWrite(LEDG1, HIGH);
digitalWrite(LEDG2, LOW);
digitalWrite(buzzer,HIGH);
delay(50);
digitalWrite(LEDR1, LOW);
digitalWrite(LEDR2, LOW);
digitalWrite(LEDB1, LOW);
digitalWrite(LEDB2, LOW);
digitalWrite(LEDG1, LOW);
digitalWrite(LEDG2, HIGH);
digitalWrite(buzzer,LOW);
delay(50);
} while(1);
}
void loop() {
if (irrecv.decode(&results)) // have we received an IR signal?
{
translateIR();
irrecv.resume(); // receive the next value
}
}
With this code cannot exit the loop on button 1 and button 2 no matter wath other button i press after. So I tried adding this on the loop:
do{
digitalWrite(LEDR1, HIGH);
digitalWrite(LEDR2, HIGH);
digitalWrite(LEDB1, LOW);
digitalWrite(LEDB2, LOW);
digitalWrite(LEDG1, LOW);
digitalWrite(LEDG2, LOW);
digitalWrite(buzzer,HIGH);
delay(200);
digitalWrite(LEDR1, LOW);
digitalWrite(LEDR2, LOW);
digitalWrite(LEDB1, HIGH);
digitalWrite(LEDB2, HIGH);
digitalWrite(LEDG1, LOW);
digitalWrite(LEDG2, LOW);
digitalWrite(buzzer,LOW);
delay(200);
if (irrecv.decode(&results)) // have we received an IR signal?
{
translateIR();
irrecv.resume(); // receive the next value
}
} while(1);
But still cannot exit the loop no matter what button i press. Then i tried adding this on the while:
do{
digitalWrite(LEDR1, HIGH);
digitalWrite(LEDR2, HIGH);
digitalWrite(LEDB1, LOW);
digitalWrite(LEDB2, LOW);
digitalWrite(LEDG1, LOW);
digitalWrite(LEDG2, LOW);
digitalWrite(buzzer,HIGH);
delay(200);
digitalWrite(LEDR1, LOW);
digitalWrite(LEDR2, LOW);
digitalWrite(LEDB1, HIGH);
digitalWrite(LEDB2, HIGH);
digitalWrite(LEDG1, LOW);
digitalWrite(LEDG2, LOW);
digitalWrite(buzzer,LOW);
delay(200);
} while(!(irrecv.decode(&results)));
But it doesnt exit the loop either. Any idea?

arduino bluetooth rc car using case switch statment

I build a bluetooth controled car that i have some problem with the code to it. Im using a switch case Statements to control it from my phone. The code works fine but i got a problem with the default: i want it to stop the car if it doesn't receive anything via the bluetooth. My code doesent seem to execute the default: at all. and i dont know whats the problem.
well here is my code.
int IN1 = 7;
int IN2 = 5;
int IN3 = 4;
int IN4 = 2;
int inByte = 0;
void setup() {
Serial.begin(9600);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}
void loop() {
//read my bluetooth
if (Serial.available() > 0) {
inByte = Serial.read();
Serial.print("I received: ");
Serial.println(inByte);
switch (inByte) {
case 'i':
Serial.println("forward");
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
break;
case 'j':
Serial.println("left");
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
break;
case 'l':
Serial.println("right");
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
break;
case 'k':
Serial.println("reverse");
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
break;
default:
Serial.println("stop");
digitalWrite(IN1, HIGH);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, HIGH);
}
}
}

Function-definition is not allowed here before '{' token

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.
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.

Resources