Ir para conteúdo
View in the app

A better way to browse. Learn more.

EletrônicaBR.com

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Multiprocessamento/Multi tarefas no Arduino

Featured Replies

Postado

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: Você não tem permissão para visualizar links. Faça login ou cadastre-se.

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:

//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:

 

Qualquer duvida manda um SOS

 

 

 

 

  • 1 mês depois...
Postado

Você não tem permissão para visualizar links. Faça login ou cadastre-se., Bacana, vi em suas postagens que está estudando microcontroladores, o que puder acrescentar para o fórum e de grande valia, obrigado.

Participe agora da conversa!

Você pode postar agora e se cadastrar mais tarde. Se você tiver uma conta, faça login para postar com sua conta.

Visitante
Responder

Conteúdo Similar

Account

Navigation

Pesquisar

Pesquisar

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.