Pages: [1] 2   Go Down
Author Topic: Parque de Estacionamento Utilizando o Arduino Uno  (Read 2854 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Olá a todos

Estou para vos pedir uma ajudinha com um projecto escolar que eu estou a fazer e estou a utilizar um Arduino Uno. O projecto é um parque de estacionamento de 8 lugares com um indicador de parque livre e de parque completo e com uma entrada e uma saída (utilizando servos) e se possível um display de 7 segmentos (que indicá-se o número de vagas existentes no parque). A minha ideia era que quando um carro estivesse para entrar no parque a barreira abria durante 5 segundos e passado esse tempo a barreira fecha e é adicionado esse carro à contagem e na saída quando um carro está para sair a barreira abre e fecha passados 5 segundos e é retirado um carro à contagem. Quando o parque está cheio, acende a luz vermelha e logo que sai um carro a luz vermelha apaga-se e acende-se a luz verde.

Será que me podem dar uma ajudinha?
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3330
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

O que é que já fizeste?
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Apenas fiz pequenos testes utilizando um programa de um parque de estacionamento que me deram, mas esse programa apenas é o indicador de parque livre e parque completo.
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3330
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok...

Nota, nós não estamos aqui para fazer os teus trabalhos. Estamos aqui para tirar dúvidas. Quando te perguntei o que já tinhas feito era para ver se conseguia "arrancar" perguntas em concreto sobre o que tens dúvidas e poder ajudar-te dessa forma.

Perguntar para te ajudarem num projecto sem dizeres o que já tens feito ou onde ficaste encalhado, vai ser mais um post aqui a ganhar pó. Vê o que te falta, o que não sabes em concreto e pergunta. Há por aqui imensa gente capaz de te responder. smiley
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Eu também não estou aqui para fazerem o trabalho por mim. Eu já fiz o programa, só que quando eu coloco para passar o programa para o Arduino ele dá me uns erros de variáveis. Em anexo coloco o programa do Arduino, para ver se alguém consegue ver de onde vem os erros.

P.S. Eu sou novo no mundo Arduino tenho 2 ou 3 semanas de experiencia, ainda não sei muito.
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3330
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ninguém disse que estavas aqui para sermos nós a fazer o programa... mas a verdade é que não deste muita informação ou sequer questões para te podermos ajudar.

Coloca aqui os erros e o código que estás a usar para podermos ver onde está o erro.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Aqui está o programa!!!

* Parque_de_Estacionamento.ino (2.61 KB - downloaded 21 times.)
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3330
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

O que esperas atingir com isto:

Code:
const int One = 3 , 4;

const int Two = 2 , 3 , 5 , 6 , 8;

const int Three = 2 , 3 , 4 , 5 , 8;

const int Four = 3 , 4 , 7 , 8;

const int Five = 2 , 4 , 5 , 7 , 8;
?
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
God Member
*****
Karma: 12
Posts: 510
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

O que esperas atingir com isto:

Code:
const int One = 3 , 4;

const int Two = 2 , 3 , 5 , 6 , 8;

const int Three = 2 , 3 , 4 , 5 , 8;

const int Four = 3 , 4 , 7 , 8;

const int Five = 2 , 4 , 5 , 7 , 8;
?

Eu ia colocar a mesma questão, quando atualizei a página você tinha sido mais rápido smiley-wink
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3330
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Eu sou o flash do Fórum do Arduino. LOL

Se calhar isto é sinal que passo demasiado tempo aqui... Por falar nisso, fiquem bem. Vou passar o fim de semana fora de casa. smiley
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
God Member
*****
Karma: 12
Posts: 510
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Eu sou o flash do Fórum do Arduino. LOL

Se calhar isto é sinal que passo demasiado tempo aqui... Por falar nisso, fiquem bem. Vou passar o fim de semana fora de casa. smiley

Ok The Flash! kkkk

Tirar uma folga é verdadeiramente bom! smiley-wink

Eu responderei a todas as pessoas e quando voltares tu corriges tudo o que eu disser, ok? rs
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

essa linguagem era para o display de 7 segmentos.
Logged

Portugal
Offline Offline
Edison Member
*
Karma: 37
Posts: 1595
Pretending you know everything then you will learn nothing.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ola vejo muitas coisas menos corretas.
Quote
if(digitalRead(IncreasePin)==LOW&&COUNTER<maxCar)
{
COUNTER++;
    info();
    delay(wait);
  }
na loop tens isto, a intençao é boa mas o que irá acontecer se mantiveres o pino em baixo?
A loop é mais  rapida que tu ou o sensor e isso ira logo atingir o valor maximo mesmo antes do sensor ou botao ser solto.
Tens de encravar a funçao para que isso nao aconteça
O que te aconcelho é antes de partires para a programaçao desenharem numa folha um algoritmo de como o programa tem de funcionar e partires cada parte em pequenas funçoes,depois partes para o programa.
Tipo funçao detecta carro, funçao verifica lugar parque, funçao semaforo ...
No teu codigo que postaste estas a repetir muitas vezes a mesma coisa que pode ser reutilizada.
Pensa primeiro nisso

Logged

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


Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

como assim fazer o algoritmo no papel?
Logged

Offline Offline
God Member
*****
Karma: 12
Posts: 510
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tuba,

O que o HugoPT quer dizer é que o loop corre muito rápido e se fizeres um teste apertando e soltando o botão, o teu count pode ser incorreto, pois o loop pode registrar o estado LOW mais de uma vez em um único pressionamento.

dê uma olhada nesse exemplo, ele melhora o tratamento do pressionamento (ou do sensor que enviará o sinal):
Code:
http://arduino.cc/en/Tutorial/ButtonStateChange

Outro método que pode utilizar é esse:
http://arduino.cc/en/Reference/AttachInterrupt

Sobre o todo, como o HugoPT disse, faz cada parte isoladamente, testa o pressionamento do botão (ou disparo do sensor), depois a movimentação dos servos, o display, etc e depois junta todo o código gradativamente, esse é o caminho mais fácil e prático (digo por experiência própria ^^).

sobre o código abaixo:
O que esperas atingir com isto:

Code:
const int One = 3 , 4;

const int Two = 2 , 3 , 5 , 6 , 8;

const int Three = 2 , 3 , 4 , 5 , 8;

const int Four = 3 , 4 , 7 , 8;

const int Five = 2 , 4 , 5 , 7 , 8;
?

Presumo que desejavas era o que tem neste link:
Code:
http://www.hacktronics.com/Tutorials/arduino-and-7-segment-led.html

Se algo não funcionar ou se tiveres alguma dúvida, retorna aqui que tentamos te ajudar.
Logged

Pages: [1] 2   Go Up
Jump to: