Go Down

Topic: Parque de Estacionamento Utilizando o Arduino Uno (Read 4404 times) previous topic - next topic

HugoPT

#15
Mar 16, 2013, 10:19 pm Last Edit: Mar 16, 2013, 10:33 pm by HugoPT Reason: 1
Quote
como assim fazer o algoritmo no papel?

A minha sugestao e desenhares tipo com baloes e instruçoes de decisao num papel o diagrama que o teu programa tem de fazer e resolver mediante o desafio que tens.
Partes cada bocado num pequeno problema e vais criando funçoes para cada uma delas
Por exemplo no teu codigo que postaste estas a repetir a mesma coisa imensas vezes para ligares os leds com o numero de lugares no parque.Para contornar isso podes usar uma variavel de 8 bits e mandares essa variavel directamente no Porto onde tens os leds.Assim podes usar uma funçao para la escrever de uma forma simples:
Code: [Select]

void writeVariableToPortB(uint8_t valueToPort)
{
DDRB = 0x1F;        //seta os 5 bits menos significativos do porto B como outputs
PORTB = valueToPort;             //escreve valor na PortaB
}



Ve esta pequena tabela de verdade que fiz no excel sobre os valores que a variavel que passas para a funçao terá de ter:
Ou seja se quiseres ligar o led 5 passas para a funçao uma variavel com o valor de 32 por exemplo:
Code: [Select]


uint8_t portVariable = 1;

void setup()
{
DDRB = 0x1F; //seta os 5 bits menos significativos do porto B como outputs 0b00011111
/*O portB tem como pinos no Atmega328 a seguinte ordem:
bit0 do PortoB ----->Pino 8 no arduino
bit1 do PortoB ----->Pino 9 no arduino
bit2 do PortoB ----->Pino 10 no arduino
bit3 do PortoB ----->Pino 11 no arduino
bit4 do PortoB ----->Pino 12 no arduino*/
}
void loop()
{
 for(uint8_t i = 0; i<=4;i++)
{
  writeVariableToPortB(portVariable);
  portVariable = portVariable * 2;
  delay(1000);
  if(portVariable == 64)portVariable = 1;//Renicia o ciclo
}

}
void writeVariableToPortB(uint8_t valueToPort)
{
PORTB = valueToPort;//Escreve o valor no PortoB
}

Este codigo deverá fazer correr os 5 leds e devera dar para resolveres essa repetiçao de codigo.Agora resolves os outros erros ...


Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B

Tuba121

Desculpa, mas não estou a perceber o isso dos valores decimais.
E isso do algoritmo é tipo isto:

HugoPT

Quote
Desculpa, mas não estou a perceber o isso dos valores decimais.

Esses valores em decimal e a conversao de binario para decimal.Se pegares numa calculadora em modo programaçao (usa a do windows) e colocares la 10000 no formato binario e carregaresm em DEC ele converte esse numero para decimal que é o mesmo valor mas numa representaçao diferente
Quote
E isso do algoritmo é tipo isto:

Nao bem, é mais algo assim:


Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B

HugoPT

Quote
desculpa estar a pedir te isto mas eu tou desesperado é que nao entregar esse projecto concluido no inicio do 3º periodo tenho que me inscrever para a recuperação do modulo e isso vai custar me 7 euros.

Nao vou fazer isso pois isso e contra tudo neste forum.Se pedires ajudar sim irei ajudar nas tuas DUVIDAS, mas nao irei fazer isso que me pedes.
Se eu te fizer isso nao vais perceber no final e nao vais ganhar nada nem aprender.Nao penses dessa forma,nao encares esse projecto como algo que tens de fazer a pressa e depois arrumou pra sempre.Da valor ao que estas a fazer e dedica-te a ele.
Acredita que eu no teu lugar preferia chumbar o modulo se quando o estivesse para apresentar nao entende-se o que la tinha feito
Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B

Tuba121

Tá bem mas eu depois de isso completo eu ia pedir que me ensinasses a fazer essas coisas, pois o professor diz que se eu fizer bem o trabalho me oferece o arduino.
E desculpa, por isto mas é que eu estou um pouco às cegas com o projecto, apenas tenho as ideias de o que queria que acontecesse no parque, mas nao percebo patavina da linguagem que deveria fazer, será que me podes ensinar a fazer a linguagem para este projecto?

HugoPT

O teu programa tem de correr de uma forma logica e estruturada.Quando digo faz o algoritmo é para meteres isso explicado em papel para entenderes o que estas a fazer e qual o proximo passo.Elabora um fluxograma com o que tens de fazer para controlar o parque.
Desenha com instruçoes de decisao
Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B

Tuba121

vou fazer o fluxograma agora mesmo, podes me dar uma ajudinha a fazer o programa depois?

bubulindo


desculpa estar a pedir te isto mas eu tou desesperado é que nao entregar esse projecto concluido no inicio do 3º periodo tenho que me inscrever para a recuperação do modulo e isso vai custar me 7 euros.


Fazer a disciplina sem entenderes o que fizeste vai custar-te muito mais. :(

Que é que aprendeste de programação?
This... is a hobby.

Tuba121

Aprendi os Sistemas de Numeração, Circuitos Lógicos, Circuitos Combinatórios, Circuitos Sequenciais e um pouco da Arquitectura dos Microcontroladores.

Go Up