Jump to content
Sign in to follow this  
Felipe129

Multiprocessamento/Multi tarefas no Arduino

Rate this topic

Recommended Posts

Fala galera queria mostrar para vocês o programa de multithread/processamento paralelo que adaptei para arduino. Pode ser usado para outros projetos que necessitam de um processamento paralelo com dois ou mais delays diferentes.

 

São 4 Leds um pisca a cada 100ms, outro a 500ms, outro a 1000ms e outro a 2000ms.

 

O projeto usa:

-Arduino UNO

-4 resistores limitadores de corrente para os LEDs

-4 Leds usei um verde, azul, vermelho, amarelo

-e jumpers

 

Montagem:

-Ligue os Leds usando os resistores limitadores de corrente:

-Verde na digital 7

-Azul na digital 8

-Vermelho na digital 9

-Amarelo na digital 10

 

Código utilizado e as bibliotecas para download:

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

São duas bibliotecas a Utility e a TimedAction que devem ser extraídas para a pasta libraries do arduino, em seguida reinicie a ide e carregue o código para o seu arduino.

 

Codigo:

---------------------------------------------------------------------------------------------------------

//Titulo: Multiprocessamento para 4 LEDs piscando com tempos diferentes

//Autor: Felipe R. -- Felipe129

//Versão: 1.24.0

//Adaptado de:

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

//Pode ser adaptado para uso com outros sistemas duvidas [EDITADO]

 

 

/*

* Resumo:

* Led Amarelo pisca a cada 100ms

* Led Vermelho pisca a cada 500ms

* Led Azul pisca a cada 1000ms

* Led Verde pisca a cada 3000ms

*/

 

/*Ligação esquematica:

*Arduino UNO

*4 LEDs ligados

*Verde na digital 7

*Azul na digital 8

*Vermelho na digital 9

*Amarelo na digital 10

*/

 

//Bibliotecas já atualizadas

#include <Utility.h>

#include <TimedAction.h>

 

//Funções para cada ação

void GreenLedON(){ //LED Verde liga

digitalWrite (7, HIGH);

}

void BlueLedON(){ //LED Azul liga

digitalWrite (8, HIGH);

}

void RedLedON(){ //LED Vermelho liga

digitalWrite (9, HIGH);

}

void YellowLedON(){ //LED Amarelo liga

digitalWrite (10, HIGH);

}

void GreenLedOFF(){ //LED Verde desliga

digitalWrite (7, LOW);

}

void BlueLedOFF(){ //LED Azul desliga

digitalWrite (8, LOW);

}

void RedLedOFF(){ //LED Vermelho desliga

digitalWrite (9, LOW);

}

void YellowLedOFF(){ //LED Amarelo desliga

digitalWrite (10, LOW);

}

 

//Crio as ações para o multiprocessamento de cada LED on/off

TimedAction GreenLedThreadON = TimedAction(2000,GreenLedON);

TimedAction BlueLedThreadON = TimedAction(1000,BlueLedON);

TimedAction RedLedThreadON = TimedAction(500,RedLedON);

TimedAction YellowLedThreadON = TimedAction(100,YellowLedON);

TimedAction GreenLedThreadOFF = TimedAction(2000,GreenLedOFF);

TimedAction BlueLedThreadOFF = TimedAction(1000,BlueLedOFF);

TimedAction RedLedThreadOFF = TimedAction(500,RedLedOFF);

TimedAction YellowLedThreadOFF = TimedAction(100,YellowLedOFF);

 

void setup() {

pinMode(7, OUTPUT); //LED Verde

pinMode(8, OUTPUT); //LED Azul

pinMode(9, OUTPUT); //LED Vermelho

pinMode(10, OUTPUT); //LED Amarelo

}

 

 

void loop() { 

 

    //Chamo os multithreads para ligar e desligar cada um

    GreenLedThreadON.check();

    BlueLedThreadON.check();

    RedLedThreadON.check();

    YellowLedThreadON.check();

    delay(20); //tempo que o led ficara ligado //tempo de delay apos executar as funçoes de ligar para desligar o LED

    GreenLedThreadOFF.check();

    BlueLedThreadOFF.check();

    RedLedThreadOFF.check();

    YellowLedThreadOFF.check();

    delay(20);//tempo que o led ficara ligado //tempo de delay apos executar as funçoes de ligar para desligar o LED

}

 

----------------------------------------------------------------------------------------------------------

 

Referencias a:

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

 

Qualquer duvida manda um SOS

 

 

 

 

Share this post


Link to post
Share on other sites

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
, Bacana, vi em suas postagens que está estudando microcontroladores, o que puder acrescentar para o fórum e de grande valia, obrigado.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

SOBRE O ELETRÔNICABR

EletrônicaBR é o melhor fórum técnico online, temos o maior e mais atualizado acervo de Esquemas, Bios e Firmwares da internet. Através de nosso sistema de créditos, usuários participativos têm acesso totalmente gratuito. Os melhores técnicos do mundo estão aqui!
Técnico sem o EletrônicaBR não é um técnico completo! Leia Mais...
×
×
  • Create New...