Tem muita coisa comentada em baixo, pois foram feitos vários testes. Para achar um tempo legal para a apresentação, que foi realizada com a bicicleta parada, foram feitos testes empíricos.
#include <16F628A.h>
#include
#use delay(clock=4000000)
#fuses INTRC_IO //internal RC oscilator, sem CLKOUT
#fuses NOWDT //no watchdog timer -> reinicia quando da erro
#fuses NOBROWNOUT //sem brownout -> reseta quando eh detectado brownout (?)
#fuses NOMCLR //pino MasterClear (reset externo) usado para I/O
#fuses PUT //Power up timer
#define TEMPO 10
void main () {
int i, j, b;
while (1) {
// PADRAO 01: somente verdes
output_b(0b10000000);
delay_ms(500);
output_b(0b00000000);
delay_ms(10);
output_b(0b10100000);
delay_ms(300);
output_b(0b00000000);
delay_ms(10);
output_b(0b10101000);
delay_ms(300);
output_b(0b00000000);
delay_ms(10);
output_b(0b10101010);
delay_ms(300);
output_b(0b00000000);
delay_ms(10);
for (i=0; i<100; i++) {
output_b(0b10101010);
delay_ms(50);
output_b(0b00000000);
delay_ms(50);
}
// PADRAO 01: somente vermelhos
output_b(0b01000000);
delay_ms(500);
output_b(0b00000000);
delay_ms(10);
output_b(0b01010000);
delay_ms(300);
output_b(0b00000000);
delay_ms(10);
output_b(0b01010100);
delay_ms(300);
output_b(0b00000000);
delay_ms(10);
output_b(0b01010101);
delay_ms(300);
output_b(0b00000000);
delay_ms(10);
for (i=0; i<30; i++) {
output_b(0b01010101);
delay_ms(50);
output_b(0b00000000);
delay_ms(50);
}
// TUDO JUNTO
output_b(0b10000000);
delay_ms(30);
output_b(0b00000000);
delay_ms(10);
output_b(0b11000000);
delay_ms(30);
output_b(0b00000000);
delay_ms(10);
output_b(0b11100000);
delay_ms(30);
output_b(0b00000000);
delay_ms(10);
output_b(0b11110000);
delay_ms(30);
output_b(0b00000000);
delay_ms(10);
output_b(0b11111000);
delay_ms(30);
output_b(0b00000000);
delay_ms(10);
output_b(0b11111100);
delay_ms(30);
output_b(0b00000000);
delay_ms(10);
output_b(0b11111110);
delay_ms(30);
output_b(0b00000000);
delay_ms(10);
output_b(0b11111111);
delay_ms(30);
output_b(0b00000000);
delay_ms(10);
for (j=0; j<30; j++) {
output_b(0b11111111);
delay_ms(50);
output_b(0b00000000);
delay_ms(50);
}
output_b(0b00000000);
delay_ms(500);
// PADRAO 02: cima pra baixo, baixo pra cima
for (j=0; j<100; j++) {
output_b(0b10000001);
delay_ms(30);
output_b(0b01000010);
delay_ms(30);
output_b(0b00100100);
delay_ms(30);
output_b(0b00011000);
delay_ms(30);
output_b(0b00100100);
delay_ms(30);
output_b(0b01000010);
delay_ms(30);
output_b(0b10000001);
delay_ms(30);
}
output_b(0b00000000);
delay_ms(500);
// PADRAO 03: acende tudo, apaga de onde parou
for (j=0; j<30; j++) {
output_b(0b10000000);
delay_ms(20);
output_b(0b11000000);
delay_ms(20);
output_b(0b11100000);
delay_ms(20);
output_b(0b11110000);
delay_ms(20);
output_b(0b11111000);
delay_ms(20);
output_b(0b11111100);
delay_ms(20);
output_b(0b11111110);
delay_ms(20);
output_b(0b11111111);
delay_ms(20);
output_b(0b01111111);
delay_ms(20);
output_b(0b00111111);
delay_ms(20);
output_b(0b00011111);
delay_ms(20);
output_b(0b00001111);
delay_ms(20);
output_b(0b00000111);
delay_ms(20);
output_b(0b00000011);
delay_ms(20);
output_b(0b00000001);
delay_ms(20);
output_b(0b00000000);
delay_ms(20);
output_b(0b00000001);
delay_ms(20);
output_b(0b00000011);
delay_ms(20);
output_b(0b00000111);
delay_ms(20);
output_b(0b00001111);
delay_ms(20);
output_b(0b00011111);
delay_ms(20);
output_b(0b00111111);
delay_ms(20);
output_b(0b01111111);
delay_ms(20);
output_b(0b11111111);
delay_ms(20);
output_b(0b11111110);
delay_ms(20);
output_b(0b11111100);
delay_ms(20);
output_b(0b11111000);
delay_ms(20);
output_b(0b11110000);
delay_ms(20);
output_b(0b11100000);
delay_ms(20);
output_b(0b11000000);
delay_ms(20);
output_b(0b10000000);
delay_ms(20);
output_b(0b00000000);
delay_ms(20);
}
output_b(0b00000000);
delay_ms(500);
// PADRAO 04: calota
for (j=0; j<150; j++) {
output_b(0b11111111);
delay_ms(2);
output_b(0b10000000);
delay_ms(10);
}
// PADRAO 04: calota DOIS
for (j=0; j<150; j++) {
output_b(0b11111111);
delay_ms(2);
output_b(0b00000001);
delay_ms(10);
}
// OS DOIS
for (j=0; j<150; j++) {
output_b(0b11111111);
delay_ms(2);
output_b(0b10000001);
delay_ms(10);
}
/*
output_b(0b00000000);
delay_ms(500);
// PADRAO 05: raios
for(j=0; j<200; j++) {
output_b(0b10000010);
delay_ms(4);
output_b(0b00000100);
delay_ms(4);
output_b(0b00100001);
delay_ms(4);
output_b(0b00001000);
delay_ms(4);
output_b(0b00100001);
delay_ms(4);
output_b(0b00000000);
delay_ms(10);
}
output_b(0b00000000);
delay_ms(500);
// PADRAO 05: raios DOIS
for(j=0; j<200; j++) {
output_b(0b10000010);
delay_ms(2);
output_b(0b00000100);
delay_ms(2);
output_b(0b00100001);
delay_ms(2);
output_b(0b00001000);
delay_ms(2);
output_b(0b00100001);
delay_ms(2);
output_b(0b00000000);
delay_ms(10);
}
*/
/*
DOIS LIGADOS 1 1
10
meio 0 (depois de 4 ms)
10
primeiro 1 meio 1
10
meio 0
10
primeiro 0 meio 1
10
meio 0
10
primeiro 1 meio 1
10
meio 0
10
primeiro 0 meio 1
10
meio 0
10
primeiro 1 meio 1
11
10
11
10
01
10
11
10
01
*/
output_b(0b00000000);
delay_ms(500);
// PADRAO 06: carro de ré
output_b(0b10000100);
for (j=0; j<200; j++) {
output_b(0b10000000);
delay_ms(10);
output_b(0b10000100);
delay_ms(10);
output_b(0b10000000);
delay_ms(10);
output_b(0b00000100);
delay_ms(10);
}
output_b(0b00000000);
delay_ms(500);
// PADRAO 07: PALITINHO NO POLICHINELOO!!!
for (j=0; j<300; j++) {
output_b(0b01000000); // boneco parado
delay_ms(3);
output_b(0b11101101);
delay_ms(3);
output_b(0b11111111);
delay_ms(3);
output_b(0b11101101);
delay_ms(3);
output_b(0b01000000);
delay_ms(3);
output_b(0b00000000);
delay_ms(4);
output_b(0b00100000); //boneco pulando
delay_ms(3);
output_b(0b01010001);
delay_ms(3);
output_b(0b11100010);
delay_ms(3);
output_b(0b11111100);
delay_ms(3);
output_b(0b11100010);
delay_ms(3);
output_b(0b01010001);
delay_ms(3);
output_b(0b00100000);
output_b(0b00000000);
delay_ms(4);
}
/*
output_b(0b00000000);
delay_ms(500);
// PADRAO 07: PALITINHO NO POLICHINELOO!!! DOIS
for (j=0; j<200; j++) {
output_b(0b01000000); // boneco parado
delay_ms(1);
output_b(0b11101101);
delay_ms(1);
output_b(0b11111111);
delay_ms(1);
output_b(0b11101101);
delay_ms(1);
output_b(0b01000000);
delay_ms(1);
output_b(0b00000000);
delay_ms(4);
output_b(0b00100000); //boneco pulando
delay_ms(1);
output_b(0b01010001);
delay_ms(1);
output_b(0b11100010);
delay_ms(1);
output_b(0b11111100);
delay_ms(1);
output_b(0b11100010);
delay_ms(1);
output_b(0b01010001);
delay_ms(1);
output_b(0b00100000);
output_b(0b00000000);
delay_ms(4);
}
output_b(0b00000000);
delay_ms(500);
// PADRAO 07: PALITINHO NO POLICHINELOO!!! DOIS
for (j=0; j<200; j++) {
output_b(0b01000000); // boneco parado
delay_ms(2);
output_b(0b11101101);
delay_ms(2);
output_b(0b11111111);
delay_ms(2);
output_b(0b11101101);
delay_ms(2);
output_b(0b01000000);
delay_ms(2);
output_b(0b00000000);
delay_ms(8);
output_b(0b00100000); //boneco pulando
delay_ms(2);
output_b(0b01010001);
delay_ms(2);
output_b(0b11100010);
delay_ms(2);
output_b(0b11111100);
delay_ms(2);
output_b(0b11100010);
delay_ms(2);
output_b(0b01010001);
delay_ms(2);
output_b(0b00100000);
output_b(0b00000000);
delay_ms(8);
}
*/
output_b(0b00000000);
delay_ms(500);
}
}
/*
void main() {
int i;
while (1) {
for (i=0; i<5; i++) {
output_b(tab_U[i]);
delay_ms(TEMPO);
}
output_b(0b00000000);
delay_ms(TEMPO);
output_high(PIN_B0);
delay_ms(250);
output_high(PIN_B1);
delay_ms(250);
output_high(PIN_B2);
delay_ms(250);
output_high(PIN_B3);
delay_ms(250);
output_high(PIN_B4);
delay_ms(250);
output_high(PIN_B5);
delay_ms(250);
output_high(PIN_B6);
delay_ms(250);
output_high(PIN_B7);
delay_ms(250);
output_B(0);
delay_ms(250);
}
}
*/
/*
void main() {
while (1) {
output_high(PIN_B0);
output_low(PIN_B1);
output_high(PIN_B2);
output_low(PIN_B3);
output_high(PIN_B4);
output_low(PIN_B5);
output_high(PIN_B6);
output_low(PIN_B7);
delay_ms(300);
output_low(PIN_B0);
output_high(PIN_B1);
output_low(PIN_B2);
output_high(PIN_B3);
output_low(PIN_B4);
output_high(PIN_B5);
output_low(PIN_B6);
output_high(PIN_B7);
delay_ms(300);
}
}
*/
/*
void main() {
output_a(0);
output_b(0);
output_high(PIN_A2);
}
*/
/*
#define TEMPO 10
void main() {
int i, j;
char frase[] = "UNIFACS";
for (j=0; j
if (frase[j] =='A')
{
for (i=0; i<5; i++)
{
output_b (tab_A[i]);
delay_ms(TEMPO);
}
}
if (frase[j]=='B')
{
for (i=0; i<5; i++)
{
output_b (tab_B[i]);
delay_ms(TEMPO);
}
break;
}
if (frase[j]=='C')
{
for (i=0; i<5; i++)
{
output_b (tab_C[i]);
delay_ms(TEMPO);
}
break;
}
if (frase[j]=='D')
{
for (i=0; i<5; i++)
{
output_b (tab_D[i]);
delay_ms(TEMPO);
}
break;
}
if (frase[j]=='E')
{
for (i=0; i<5; i++)
{
output_b (tab_E[i]);
delay_ms(TEMPO);
}
break;
}
if (frase[j]=='F')
{
for (i=0; i<5; i++)
{
output_b (tab_F[i]);
delay_ms(TEMPO);
}
break;
}
if (frase[j]=='G')
{
for (i=0; i<5; i++)
{
output_b (tab_G[i]);
delay_ms(TEMPO);
}
break;
}
if (frase[j]=='H')
{
for (i=0; i<5; i++)
{
output_b (tab_H[i]);
delay_ms(TEMPO);
}
break;
}
if (frase[j]=='I')
{
for (i=0; i<5; i++)
{
output_b (tab_I[i]);
delay_ms(TEMPO);
}
break;
}
if (frase[j]=='J')
{
for (i=0; i<5; i++)
{
output_b (tab_J[i]);
delay_ms(TEMPO);
}
break;
}
if (frase[j]=='K')
{
for (i=0; i<5; i++)
{
output_b (tab_K[i]);
delay_ms(TEMPO);
}
break;
}
if (frase[j]=='L')
{
for (i=0; i<5; i++)
{
output_b (tab_L[i]);
delay_ms(TEMPO);
}
break;
}
if (frase[j]=='M')
{
for (i=0; i<5; i++)
{
output_b (tab_M[i]);
delay_ms(TEMPO);
}
break;
}
if (frase[j]=='N')
{
for (i=0; i<5; i++)
{
output_b (tab_N[i]);
delay_ms(TEMPO);
}
break;
}
if (frase[j]=='O')
{
for (i=0; i<5; i++)
{
output_b (tab_O[i]);
delay_ms(TEMPO);
}
break;
}
if (frase[j]=='P')
{
for (i=0; i<5; i++)
{
output_b (tab_P[i]);
delay_ms(TEMPO);
}
break;
}
if (frase[j]=='Q')
{
for (i=0; i<5; i++)
{
output_b (tab_Q[i]);
delay_ms(TEMPO);
}
break;
}
if (frase[j]=='R')
{
for (i=0; i<5; i++)
{
output_b (tab_R[i]);
delay_ms(TEMPO);
}
break;
}
if (frase[j]=='S')
{
for (i=0; i<5; i++)
{
output_b (tab_S[i]);
delay_ms(TEMPO);
}
break;
}
if (frase[j]=='T')
{
for (i=0; i<5; i++)
{
output_b (tab_T[i]);
delay_ms(TEMPO);
}
break;
}
if (frase[j]=='U')
{
for (i=0; i<5; i++)
{
output_b (tab_U[i]);
delay_ms(TEMPO);
}
break;
}
if (frase[j]=='V')
{
for (i=0; i<5; i++)
{
output_b (tab_V[i]);
delay_ms(TEMPO);
}
break;
}
if (TEMPO=='W')
{
for (i=0; i<5; i++)
{
output_b(tab_W[i]);
delay_ms(TEMPO);
}
}
if (frase[j]=='X')
{
for (i=0; i<5; i++)
{
output_b (tab_X[i]);
delay_ms(TEMPO);
}
break;
}
if (frase[j]=='Y')
{
for (i=0; i<5; i++)
{
output_b (tab_Y[i]);
delay_ms(TEMPO);
}
break;
}
if (frase[j]=='Z')
{
for (i=0; i<5; i++)
{
output_b (tab_Z[i]);
delay_ms(TEMPO);
}
break;
}
if (frase[j]==' ')
{
for (i=0; i<5; i++)
{
output_b (tab_esp[i]);
delay_ms(TEMPO);
}
break;
}
output_b(0);
delay_ms(TEMPO);
}
}
*/
/*
#define TEMPO 4 // tempo entre uma coluna e outra
#define LIGADO 1 // para facilitar leitura de codigo
//#define FRASE "'Unifacs - Arhte'" PQ ????
*/
/*
void main() {
int i, j;
char frase[30] = "UNIFACS - ARHTE";
while (LIGADO) {
for (i=0; frase[i] != '\0'; i++) {
if ((frase[i] <= 'Z') && (frase[i] >= 'A')) { // APENAS MAIUSCULAS
for (j=0; j<5; j++) {
output_b(tab_Letras[frase[i] - 'A'][j]);
delay_ms(TEMPO);
}
//
}
}
for (i=0; i<5; i++) {
output_b(0b00000000);
}
}
}
*/
/*
A - 130
B - 131
C - 13TEMPO
Z - 155
A - A = 0
A - C = 2
*/
/*
RB4
RB5
RB6
RB7
RA6
RA7
RA0
RA1 F
RB3
RB2
RB1
RB0
RA5 F
RA4 F
RA3
RA2 F
*/
2 comentários:
Gedai
Prabenss
Ficou muito bom!
Mais coloquem led de alto brilho!
Sérgio Holtz
Muito Obrigado.
Trabalhamos muito para chegarmos a tal resultado.
O propeller usado na apresentação ja tinha LEDs de alto brilho.
Postar um comentário