Osvaldo Neto / Mbed 2 deprecated Desafio-01

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
OsvaldoTNeto
Date:
Mon Oct 17 04:10:26 2016 +0000
Commit message:
Sem?foro convencional de tr?s cores utilizando PWM. Placa FRDM-KL25Z

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Oct 17 04:10:26 2016 +0000
@@ -0,0 +1,110 @@
+// -------------------------------------
+// Desafio 01
+// Microcontroladores 2 - 03/10/2016
+// Semáforo de três cores com PWM
+// -------------------------------------
+// Aline Romanini   145157
+// Marlon Felipe    121207
+// Osvaldo Torezan  147558
+// -------------------------------------
+
+// Inclui a Library do mbed
+#include <mbed.h> 
+
+// Define o LED 1 da placa (vermelho) como uma saída PWM na variável "vermelho"
+PwmOut vermelho(LED1);
+// Define o LED 2 da placa (verde) como uma saída PWM na variável "verde"
+PwmOut verde(LED2);
+
+// O programa contém 3 laços infinitos (while(1)) sendo um laço para
+// cada cor corresponde ao semáforo (verde, amarelo, vermelho)
+// 
+// Primeiramente, o programa acende a cor verde, realizando um PWM em passos de 0.1
+// de 0.0 até 1.0 apagando assim gradativamente a cor verde. Ao apagar completamente
+// a cor verde (assume o valor 1.0), o programa realiza um 'break' no laço infinito 
+// correspondente, e aciona a próxima cor.
+//   
+// Logo após a cor verde ser apagada, o programa acende as cores verde e vermelho juntas
+// para formar a cor amarela. Com o laço infinito e o PWM simultâneo, a cor laranja
+// é gradativamente apagada.
+//  
+// Por fim, no último laço infinito, o programa acende a luz vermelha e gradativamente
+// através do PWM, apaga a cor vermelha, retornando ao verde e assim sucessivamente
+
+// Inicio do programa (função principal 'main')
+int main()
+{
+ // Laço infinito principal
+ while (1)
+ {
+  // Apaga a cor verde
+  verde = 1.0;
+  // Apaga a cor vermelha
+  vermelho = 1.0;    
+  
+  // Acende a cor verde
+  verde = 0.0;
+  
+  // Laço infinito da cor verde  
+  while (1)
+  {
+   // Incrementa a cor verde gradativamente até apagar
+   verde = verde + 0.1;
+   // Espera 100ms
+   wait(0.1);
+   if (verde == 1.0)
+   {
+    // Caso a cor verde esteja totalmente apagada, o programa redefine os valores para a cor
+    // verde e vermelha como apagados e sai do laço infinito da cor verde
+    verde = 1.0;
+    vermelho = 1.0;
+    break;
+   }
+  }
+    
+  // Acende o led verde  
+  verde = 0.0;
+  // Acende o led vermelho
+  vermelho = 0.0;
+    
+  // Laço infinito da cor amarela (verde + vermelho)
+  while (1)
+  {
+   // Incrementa as cores verde e vermelho gradativamente até apagar
+   verde = verde + 0.1;
+   vermelho = vermelho + 0.1;
+   // Espera 100ms
+   wait(0.1);   
+   if (verde == 1.0)
+   {
+    // Caso a cor verde esteja totalmente apagada, o programa redefine os valores para a cor
+    // verde e vermelha como apagados e sai do laço infinito da cor verde
+    verde = 1.0;
+    vermelho = 1.0;
+    break;
+   }
+  }
+  
+  // Acende o led vermelho
+  vermelho = 0.0;
+
+  // Laço infinito da cor vermelha
+  while (1)
+  {
+   // Incrementa a cor vermelho gradativamente até apagar
+   vermelho = vermelho + 0.1;
+   // Espera 100ms
+   wait(0.1);
+   if (vermelho == 1.0)
+   {
+    // Caso a cor vermelha esteja totalmente apagada, o programa redefine os valores para a cor
+    // verde e vermelha como apagados e sai do laço infinito da cor vermelha
+    verde =1.0;
+    vermelho=1.0;
+    break;
+   }
+  }
+  
+ }
+ 
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Mon Oct 17 04:10:26 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/25aea2a3f4e3
\ No newline at end of file