Sei sulla pagina 1di 14

I – SEMÁFORO

1. SEMÁFORO

1.2 Conceito de Semáforo

Segundo o Editorial QueConceito diz que:

O semáforo é um dos elementos mais característicos das ruas de


qualquer cidade do mundo e um dos sinais de trânsito mais
importantes dos quais devemos prestar atenção, uma vez que sua
função é regular o trânsito dos veículos e pedestres.

Isto é, através de suas três luzes disponíveis, que se acendem de


maneira alternada, permitem que tanto os automóveis como os pedestres saibam a hora de
parar, que devem ficar alertas pelo pouco tempo que têm para transitar ou se estão livres
para seguir adiante e circular pela via.

A cor verde significa que o automóvel pode transitar pelas ruas dentro da velocidade e das
condições permitidas pelas normas do trânsito em geral. Quando ocorre a mudança para a
cor amarela indica que o motorista deve ter atenção e diminuir sua marcha porque logo
chegará o sinal vermelho, este indica que o motorista deve parar seu veículo totalmente
porque a próxima rua que cruza estará livre a partir desse momento, desta maneira, os
pedestres terão a possibilidade de atravessar a rua pela correspondente faixa de pedestres.

1
I – SEMÁFORO

Por outro lado, existem semáforos cuja missão é orientar os


pedestres, desta maneira, o ideal é quando estiver no papel de
pedestre ter atenção e ser cuidadoso. Normalmente quando este
semáforo apresentar a figura de uma pessoa caminhando e
estiver aceso com a luz verde indica que o pedestre pode
atravessar a rua sem problemas porque o trânsito está parado;
já quando o homenzinho estiver parado e o sinal piscando na cor vermelha adverte que o
pedestre deve ter pressa porque logo o sinal ficará parado e vermelho indicando que NÃO
se deve atravessar a rua de maneira nenhuma.

2
II – PROJETO 2: SEMÁFORO INTERATIVO

2. O PROJETO

Vamos simular um farol de pedestre e um botão, que será pressionado pelos pedestres para
solicitar a travessia da rua. Agora iremos ter uma interação direta com o Arduino que reagirá
quando o botão for pressionado, alterando o estado das luzes para que os carros parem e
os pedestres possam atravessar em segurança.

Com esta interação vamos realizar algo quando você alterar o estado de um botão que está
sendo observado. Neste projeto, você também aprenderá como criar suas próprias funções
dentro do código.

2.1 Componentes necessários

• 2 LEDs vermelhos;
• 1 LED amarelo;
• 2 LEDs verdes;
• 1 Resistor de 150 Ohms;
• 4 Resistores entre 100 a 200 Ohms;
• 1 Botão push.

3
II – PROJETO 2: SEMÁFORO INTERATIVO

2.1.2 Botão Push

Os Push (Botões de Pressão) caracterizam-se por necessitarem serem pressionados para


mudarem o estado do interruptor, aberto ou fechado. Dizemos que o estado do interruptor
está fechado quando a corrente pode fluir de um contato do botão para o outro. Quando os
contatos estão separados, dizemos que o estado do botão está aberto, e a corrente não pode
fluir entre os contatos.

Modelos comuns de botões de pressão

Fonte: Site Tot Engenharia

Os Mini Push Buttons são também chamados de interruptores tendenciosos ou


momentâneos, porque após pressionados, eles retornam ao estado de origem (aberto ou
fechado).

4
II – PROJETO 2: SEMÁFORO INTERATIVO

Estado aberto e fechado

Fonte: Site Dreaminc

Os push buttons possuem um mecanismo


com mola e contatos elétricos. Normalmente
o contato elétrico está aberto, isto é,
bloqueando a passagem de corrente elétrica.
Quando o botão é acionado pelo usuário, o
contato elétrico é fechado, de modo que a sua
resistência elétrica se torna muito baixa,
próximo de zero Ohm. Assim, é fechado o
circuito para a passagem de corrente elétrica.

5
II – PROJETO 2: SEMÁFORO INTERATIVO

A forma de utilização mais comum de um botão com o Arduino é para mudar o nível lógico
de um pino, quando acionado. Em geral, o pino do Arduino está em nível lógico alto (5V) e é
levado ao nível lógico baixo (0 V) quando o botão é pressionado.

2.2 Fritzing
2.3 Montagem e conexão da protoboard e o Arduino

Assista aos Vídeos

6
III – LINGUAGENS C/C++

3. CÓDIGO

Assista aos Vídeos

3.1 Comandos internos


3.2 INPUT

Configura o pino como Entrada(INPUT).

3.3 digitalRead()

[Entradas e Saídas Digitais].

Lê o valor de um pino digital especificado, que pode ser HIGH ou LOW, INPUT ou OUTPUT.

3.4 void

[Tipos de Dados].

A palavra-chave void é usada apenas em declarações de funções. Ela indica que é esperado
que a função não retorne nenhuma informação para a função da qual foi chamada.

7
III – LINGUAGENS C/C++

3.5 millis()

[Funções Temporizadoras].

Retorna o número de milissegundos passados desde que a placa Arduino começa a executar
o programa atual. Esse número irá sofrer overflow (chegar ao maior número possível e então
voltar pra zero).

3.6 Variáveis
3.7 unsigned long

[Tipos de Dados].

Variáveis unsigned long são variáveis de tamanho estendido para armazenamento de


números, que armazenam 32 bits (4 bytes). Diferentemente de longs padrão, unsigned longs
não guardam números negativos.

3.8 Estrutura condicional

Com as estruturas condicionais, podemos dizer que alguns trechos do código nem sempre
serão executados. Estes trechos estarão condicionados a alguma condição.

A Estrutura Condicional possibilita a escolha de um grupo de ações e estruturas a serem


executadas quando determinadas condições são ou não satisfeitas. A Estrutura Condicional
pode ser Simples ou Composta.

8
III – LINGUAGENS C/C++

3.8.1 Estrutura condicional simples

A Estrutura Condicional Simples executa um comando ou vários comandos se a condição


for verdadeira. Se a condição for falsa, a estrutura é finalizada sem executar os comandos.
O comando que define a estrutura é representado pela palavra IF(SE).

O comando somente será executado se a condição for verdadeira.

Assista aos Vídeos

3.9 Laços condicionais

Um motivo pelo qual os computadores nos auxiliam muito em tarefas é porque são capazes
de repetir tarefas milhões ou bilhões de vezes sem cometer erros. Este tipo de repetição
poderia demorar séculos para nós, porém, são simples para essas máquinas.

As estruturas de repetição nos permitem realizar instruções repetidamente enquanto uma


condição for verdadeira.

9
III – LINGUAGENS C/C++

Por retornar a um comando anterior no código, estruturas de repetição também são


chamadas de instruções de loop, ou laço. Usualmente, os laços são repetidos um certo
número de vezes ou até que algo aconteça.

3.9.1 Instrução FOR

A instrução FOR é utilizada para repetições controladas por uma variável contadora.
Podemos colocar quantos comandos quisermos dentro do bloco de comandos de for.
Inclusive, podemos colocar ali outras estruturas condicionais e até mesmo outras estruturas
de repetição.

Assista aos Vídeos

3.10 Operadores de Incremento

Os operadores de incremento têm a finalidade de acelerar o processo de adicionar uma


unidade de um determinado número. Geralmente, a utilização desses operadores está
relacionada com os laços de repetição, haja vista que os mesmos, geralmente, alteram o
valor de suas variáveis para alterar o item a ser manipulado.

10
III – LINGUAGENS C/C++

Este incremento é representado por dois sinais de ++.

A depender da sua posição na incrementação ele pode ser definido como pré-incremento ou
pós-incremento.

Assim, se utilizamos os operadores a frente da variável, estamos PRÉ-(incrementando) o


valor. Enquanto que se utilizarmos o operador após a variável, estaremos PÓS-
(incrementando).

Exemplos:

//PRÉ-incremento ++x;

//PÓS-incremento x++.

3.11 Operadores Relacionais

Estes operadores são também conhecidos como operadores comparativos, por fazerem
comparações entre os valores de dois operandos. As expressões que usam operadores de
relação retornarão 0 para falso e 1 para verdadeiro.

11
III – LINGUAGENS C/C++

Exemplos utilizados até aqui:

Tabela 1: Operadores relacionais

OPERADORES RELACIONAIS

== IGUAL

> MAIOR QUE

< MENOR QUE

3.11 Operadores Aritméticos

Os operadores aritméticos são usados para desenvolver operações matemáticas. Veja


alguns exemplos abaixo.

(+) Soma
(-) Subtração
(*) Multiplicação
(/) Divisão

12
III – LINGUAGENS C/C++

3.12 Operadores Lógicos

A linguagem C suporta, além das operações aritméticas, as operações binárias, ou seja, as


operações em nível de bits. Estas operações são muito frequentes em programas para
sistemas embarcados, pois elas permitem que somente um campo específico de um
registrador seja alterado numa instrução de atribuição.

Exemplos:

Tabela 2: Operadores lógicos


Operador Corresponde a Corresponde a
&& E AND
|| OU OR
! NÃO NOT

13
1. REFERÊNCIAS BIBLIOGRÁFICAS

SITE QUECONCEITO. Conceito de Semáforo. Disponível em:


<https://queconceito.com.br/semaforo>. Acesso em: 16 de ago. 2019.

SITE TOT ENGENHARIA. Push button no Arduino com filtro de Bouncing. Disponível
em: <http://tot.eng.br/push-button-arduino-bouncing/>. Acesso em: 18 de ago. 2019.

SITE DREAMINC. Interruptores – Mini Botão de Pressão. Disponível em:


<https://www.dreaminc.com.br/sala_de_aula/9b-interruptores-mini-botao-de-pressao/>.
Acesso em: 18 de ago. 2019.

14

Potrebbero piacerti anche