Hello Arduino Proramming forum,
Working to call two different functions from void loop() that use blink without delay.
So I copied a sketch that uses blink without delay in void loop().
It works well. Code and schematic attached.
Then the function which blinks w/o delay was made into two functions, runLED3()
and runLED4() and the two functions were called from void loop().
Code and schematic attached.
But the error Compilation error: 'runLED4' was not declared in this scope persists.
It is realized that runLED4 is not declared in the scope of void loop() but
runLED4 is declare as a function.
Can a function not be called from void loop() or am I missing something?
Thanks.
Allen Pitts
****** run from void loop)************
/* Blink without Delay
from
https://gist.github.com/kubilisr/eaf9d488e258a2175313fb38f6f80aa2
Turns on and off a light emitting diode (LED) connected to a digital
pin, without using the delay() function. This means that other code
can run at the same time without being interrupted by the LED code.
The circuit:
* LED attached to 220 ohm resistor attached to pin 4 of the ATtiny85
created 2005
by David A. Mellis
modified 8 Feb 2010
by Paul Stoffregen
modified 11 Nov 2013
by Scott Fitzgerald
This example code is in the public domain.
http://www.arduino.cc/en/Tutorial/BlinkWithoutDelay
*/
// constants won't change. Used here to set a pin number :
const int ledPin = 4; // the number of the LED pin
// Variables will change :
int ledState = LOW; // ledState used to set the LED
// Generally, you should use "unsigned long" for variables that hold time
// The value will quickly become too large for an int to store
unsigned long previousMillis = 0; // will store last time LED was updated
// constants won't change :
const long interval = 1000; // interval at which to blink (milliseconds)
void setup() {
// set the digital pin as output:
pinMode(ledPin, OUTPUT);
}
void loop() {
// here is where you'd put code that needs to be running all the time.
// check to see if it's time to blink the LED; that is, if the
// difference between the current time and last time you blinked
// the LED is bigger than the interval at which you want to
// blink the LED.
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
// save the last time you blinked the LED
previousMillis = currentMillis;
// if the LED is off turn it on and vice-versa:
if (ledState == LOW) {
ledState = HIGH;
} else {
ledState = LOW;
}
// set the LED with the ledState of the variable:
digitalWrite(ledPin, ledState);
}
}
***** end of run from void loop)************
****** call functions run from void loop)************
/* Blink without Delay
based on Blink_wo_Delay_Attiny85_240327.ino
*/
// constants won't change. Used here to set a pin number :
const int ledPin3 = 3; // the number of the LED pin
const int ledPin4 = 4; // the number of the LED pin
// Variables will change :
int ledState3 = LOW;
int ledState4 = LOW; // ledState used to set the LED
// Generally, you should use "unsigned long" for variables that hold time
// The value will quickly become too large for an int to store
unsigned long previousMillis3 = 0;
unsigned long previousMillis4 = 0; // will store last time LED was updated
// constants won't change :
const long interval3 = 1000;
const long interval4 = 500; // interval at which to blink (milliseconds)
void setup() {
// set the digital pin as output:
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
}
void loop() {
runLED3();
runLED4();
}
void runLED3(){
// check to see if it's time to blink the LED; that is, if the
// difference between the current time and last time you blinked
// the LED is bigger than the interval at which you want to
// blink the LED.
unsigned long currentMillis3 = millis();
if (currentMillis3 - previousMillis3 >= interval3) {
// save the last time you blinked the LED
previousMillis3 = currentMillis3;
// if the LED is off turn it on and vice-versa:
if (ledState3 == LOW) {
ledState3 = HIGH;
} else {
ledState3 = LOW;
}
// set the LED with the ledState of the variable:
digitalWrite(ledPin3, ledState3);
}
void runLED4(){
// check to see if it's time to blink the LED; that is, if the
// difference between the current time and last time you blinked
// the LED is bigger than the interval at which you want to
// blink the LED.
unsigned long currentMillis4 = millis();
if (currentMillis4 - previousMillis3 >= interval3) {
// save the last time you blinked the LED
previousMillis4 = currentMillis3;
// if the LED is off turn it on and vice-versa:
if (ledState4 == LOW) {
ledState4 = HIGH;
} else {
ledState4 = LOW;
}
// set the LED with the ledState of the variable:
digitalWrite(ledPin4, ledState4);
}
****** call functions run from void loop)************