Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Sistema de contagem de tempo para acionamentos independentes
- code desenvolvido por: Romario de Jesus Santana
- data da versao: 20/02/2017 V0.1a
- Ocupação: estudante e hobista
- */
- class Conte {
- private:
- bool estado; unsigned long passado;
- public:
- bool oneInterval(unsigned long tempoUnico);
- bool twoInterval(unsigned long tempoDes, unsigned long tempoLig);
- void noInterval();
- };
- Conte tempo1, tempo2, tempo3; //cria diferentes tempos usando a classe Conte
- void setup() {
- pinMode(13, OUTPUT);
- pinMode(12, OUTPUT);
- pinMode(11, OUTPUT);
- pinMode(2, INPUT_PULLUP);
- }
- void loop() {
- digitalWrite(13, tempo1.twoInterval(1000, 3000)); //vai contar 1segundo desligado e 3segundos ligado
- digitalWrite(12, tempo2.oneInterval(500)); //muda o estado a cada meio segundo
- if (digitalRead(2) != 0) tempo3.noInterval();//caso o botao nao esteja pressionado não irá fazer a contagem do tempo3
- digitalWrite(11, tempo3.oneInterval(2000)); //muda o estado a cada 2segundos
- }
- bool Conte::twoInterval(unsigned long tempoDes, unsigned long tempoLig) {//faz uma contagem alternada com intervalos diferentes
- unsigned long alterne[2] = {tempoDes, tempoLig};//
- if (millis() - passado >= alterne[estado]) {
- passado = millis();
- estado = !estado;
- }
- return estado;
- }
- bool Conte::oneInterval(unsigned long tempoUnico) {//faz uma contagem alternada com mesmo intervalo
- return twoInterval(tempoUnico, tempoUnico);
- }
- void Conte::noInterval() {//funçao mantem a contagem parada
- passado = millis();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement