This was my code
#include <Stepper.h>
// constantes que não mudam. Numeros dos pins:
const int speaker = 7;
const int led = 13;
const int buttonPin = 2;
const int botao = 3;
const int stepsPerRevolution = 500;
Stepper myStepper(stepsPerRevolution, 8,10,9,11);
// Variaveis:
int buttonState = 0;
int estadobotao = 0;
long wtempo = millis();
long minutos = millis();
int posi = 0;
int alarms[10];
//= {0,0,0,0,0,0,0,0};
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
pinMode(botao, INPUT_PULLUP);
pinMode(led, OUTPUT);
myStepper.setSpeed(48); // velocidade
}
void loop() {
// Lê os valores das variaveis
buttonState = digitalRead(buttonPin);
estadobotao = digitalRead(botao);
// Verifica se o botão está apertado ou não
if (buttonState==0){
myStepper.step(256); // graus
// delay(2000);
}
if (estadobotao==0) {
//digitalWrite(led,HIGH);
// delay(3000);
}
else {
digitalWrite(led,LOW); //Botão não pressionado, apaga o led.
wtempo=millis(); //tempo em milisegundos
}
if (millis()-wtempo > 3000) { // inicia o modo de programação
programa();
}
// verificação dos tempos
for ( int alr = 1 ; alr < 9; alr++){
if (alarms[alr] == int((millis() - minutos)/60000) && alarms[alr]>0) {
for (int x=posi; x< alr+1; x++){
if (posi < alr){
myStepper.step(256);
tone(speaker, 500, 500);
posi = alr;
}
}
}
}
//if (int((millis() - minutos)/60000)==1) {
// myStepper.step(256);
//}
}
//------------------------------------------
int programa(){
for (int x=0; x<20;x++){ // aviso que entrou em modo de programação
digitalWrite(led,HIGH);
delay(100);
digitalWrite(led,LOW);
delay(100);
}
int dias=1;
alarms[dias]=0;
do
{
if (digitalRead(buttonPin)==0){ // Muda o compartimento
dias++;
alarms[dias]=0;
myStepper.step(256);
tone(speaker, 500, 500);
delay(100);
}
if (digitalRead(botao)==0){ // Escolhe o numero de minutos
alarms[dias]++;
digitalWrite(led,HIGH);
delay(100);
digitalWrite(led,LOW);
}
delay(100);
} while (dias < 9);
for (int dias=1; dias<9;dias++){ // Mostra o numero de minutos por cada compartimento
for (int x=0; x<alarms[dias];x++){
digitalWrite(led,HIGH);
delay(100);
digitalWrite(led,LOW);
delay(100);
}
delay(1000);
}
}
This is my actual code
#include <Stepper.h>
// constantes que não mudam. Numeros dos pins:
const int speaker = 7;
const int led = 13;
const int buttonPin = 2;
const int botao = 3;
const int stepsPerRevolution = 500;
Stepper myStepper(stepsPerRevolution, 8,10,9,11);
// Variaveis:
int buttonState = 0;
int estadobotao = 0;
long wtempo = millis();
long minutos = millis();
int posi = 0;
int alarms[10];
//= {0,0,0,0,0,0,0,0};
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
pinMode(botao, INPUT_PULLUP);
pinMode(led, OUTPUT);
myStepper.setSpeed(48); // velocidade
}
void loop() {
// Lê os valores das variaveis
buttonState = digitalRead(buttonPin);
estadobotao = digitalRead(botao);
// Verifica se o botão está apertado ou não
if (buttonState==0){
myStepper.step(256); // graus
// delay(2000);
}
if (estadobotao==0) {
//digitalWrite(led,HIGH);
// delay(3000);
}
else {
digitalWrite(led,LOW); //Botão não pressionado, apaga o led.
wtempo=millis(); //tempo em milisegundos
}
if (millis()-wtempo > 3000) { // inicia o modo de programação
programa();
}
// verificação dos tempos
for ( int alr = 1 ; alr < 9; alr++){
if (alarms[alr] == int((millis() - minutos)/60000) && alarms[alr]>0) {
for (int x=posi; x< alr+1; x++){
if (posi < alr){
myStepper.step(256);
tone(speaker, 500, 500);
posi = alr;
}
}
}
}
//if (int((millis() - minutos)/60000)==1) {
// myStepper.step(256);
//}
}
//------------------------------------------
int programa(){
for (int x=0; x<20;x++){ // aviso que entrou em modo de programação
digitalWrite(led,HIGH);
delay(100);
digitalWrite(led,LOW);
delay(100);
}
int dias=1;
alarms[dias]=0;
do
{
if (digitalRead(buttonPin)==0){ // Muda o compartimento
dias++;
alarms[dias]=0;
myStepper.step(256);
tone(speaker, 500, 500);
delay(100);
}
if (digitalRead(botao)==0){ // Escolhe o numero de minutos
alarms[dias]++;
digitalWrite(led,HIGH);
delay(100);
digitalWrite(led,LOW);
}
delay(100);
} while (dias < 9);
for (int dias=1; dias<9;dias++){ // Mostra o numero de minutos por cada compartimento
for (int x=0; x<alarms[dias];x++){
digitalWrite(led,HIGH);
delay(100);
digitalWrite(led,LOW);
delay(100);
}
delay(1000);
minutos =millis();
}
}
The only thing that i change was at the end. I insert
minutos =millis();