Академический Документы
Профессиональный Документы
Культура Документы
Minicomputador PDP-11.
Certo que seu surgimento foi fruto de um resultado de desenvolvimento de uma linguagem
anterior chamada BCPL, que atualmente é muito utilizado em sua forma original no
continente Europeu. A linguagem BCPL foi desenvolvida por Martim Richards e influenciou
1
I - LINGUAGENS PROGRAMAÇÃO C/C++
Então em 1983 o nome da linguagem foi alterado de “C com Classes”, C with Classes em
inglês, para C++. Uma novidade importante da linguagem C++ é que ela contém uma
biblioteca padrão de recursos que também foi sendo melhorada ao longo do tempo.
2
I - LINGUAGENS PROGRAMAÇÃO C/C++
O sistema operacional Unix surge na sequência de um projeto iniciado nos anos 60 nos Bell
Labs da AT&T para desenvolver um sistema de operativo de tempo partilhado. Em 1965, os
Bell Labs com Dennis Ritchie iniciaram um projeto conjunto com a General Electric e o MIT
para desenvolver um sistema operativo de tempo partilhado designado Multics. No entanto,
pouco depois do seu início, os Bell Labs consideraram que o projeto estava mal encaminhado
e decidiram abandonar o consórcio. Dada a necessidade de ser encontrada uma alternativa
ao Multics para uso interno, Kenneth Thompson, um dos investigadores dos Bell Labs, iniciou
um projeto de desenvolvimento próprio que conduziu, em 1969, a primeira versão do sistema
operacional Unix.
3
I - LINGUAGENS PROGRAMAÇÃO C/C++
Uma das inovações do sistema Unix relativamente a outros sistemas operacionais da época
era o conceito de que muitos dos comandos associados a gestão de máquina devem ser
executados por pequenos programas independentes, funcionando de forma cooperativa.
Esta estratégia permitiu simplificar significativamente as tarefas associadas ao núcleo do
sistema operacional, aumentando simultaneamente a sua robustez e modularidade.
4
II - SOFTWARES
2. Softwares
Uma das principais vantagens dos IDEs está na capacidade de compilar bibliotecas completas de
linguagem. Outra função bastante comum neste tipo de programa são os debuggers, que apontam
os erros que ocasionalmente podem ocorrer ao escrever o código. Alguns IDEs também possuem o
auto completar.
5
II - SOFTWARES
6
II - SOFTWARES
Quando se abre o IDE do ARDUINO, será exibido algo semelhante à figura abaixo:
7
II - SOFTWARES
O IDE é dividido em três partes: A Toolbar no topo, o código ou a Sketch Window no centro,
e a janela de mensagens na base, conforme é exibido na Figura 15.
Sob a Toolbar há uma guia, ou um conjunto de guias, com o nome do arquivo do sketch.
Também há um botão posicionado no lado direito que habilita o serial monitor. Ao longo do
topo há uma barra de menus, com os itens File, Edit, Sketch, Tools e Help.
8
II - SOFTWARES
9
2.2.2 Linguagem Utilizada
Wiring e Processing são projetos que surgiram antes do Arduino onde os projetos são
escritos/desenvolvidos em JAVA, C e C++.
10
II - SOFTWARES
2.2.3 Sketches
Os programas escritos para Arduino são chamados de sketches (esboços). Muitas coisas
acontecem antes do sketch ser transferido para a placa Arduino.
Antes que possamos trabalhar com o Arduino, precisamos configurar alguns itens. Essa
configuração é realizada dentro de uma rotina chamada setup(), a qual é chamada sempre
que o sketch é inicializado. Geralmente inicializamos os pinos de entrada e saída digitais, e
podemos também definir a taxa de transmissão serial, entre outras coisas. É comum
declaramos as variáveis usadas no programa antes da definição da função setup().
void setup() {
pinMode(13, OUTPUT);
Serial.begin(9600);
}
11
II - SOFTWARES
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
12
II - SOFTWARES
Software Fritzing.
13
III – PROJETO 1: PISCAR LED
Começaremos com um projeto simples onde terá a função apenas de fazer o efeito de
piscar o LED.
3.1.2 Protoboards
14
III – PROJETO 1: PISCAR LED
É constituída por uma base plástica, contendo inúmeros orifícios destinados à inserção de
terminais de componentes eletrônicos. Internamente existem ligações determinadas que
interconectam os orifícios, permitindo a montagem de circuitos eletrônicos sem a utilização
de solda.
Existem vários tamanhos e tipos de Protoboard, nos quais são selecionados de acordo a
necessidade do usuário pela quantidade de componentes que será necessário no
experimento.
15
III – PROJETO 1: PISCAR LED
16
III – PROJETO 1: PISCAR LED
Desta forma, uma vez comprovado o funcionamento de um circuito, o mesmo deverá ser
montado em uma placa de circuito impresso, caso deseje utilizá-lo em definitivo.
17
III – PROJETO 1: PISCAR LED
3.1.3 LED
Figura 7: LEDs.
18
III – PROJETO 1: PISCAR LED
O raio laser “... é formado por partículas de luz (fótons) concentradas e emitidas em forma
de um feixe contínuo. Essa luz é canalizada com a ajuda de espelhos para formar um feixe”.
(JOKURA, 2015, online).
19
III – PROJETO 1: PISCAR LED
3.1.4 Resistor
20
III – PROJETO 1: PISCAR LED
alguma parte de um circuito elétrico, mas não causam quedas de corrente elétrica, apesar
de limitar a corrente. Isso significa que a corrente elétrica que entra em um terminal do
resistor será exatamente a mesma que sai pelo outro terminal, porém há uma queda de
tensão. Então os resistores entram com a função de controlar a tensão sobre os
componentes desejados.
O valor de um resistor, pode ser facilmente identificado analisando as cores que apresenta
em torno dele, ou então utilizando um ohmímetro, que é um instrumento de medição de
resistores (JACQUET, et al, 2011).
21
III – PROJETO 1: PISCAR LED
Resistor que possui um cilindro de cerâmica que é coberto por uma película de carbono. Na
fabricação a determinação da resistência é feita através da largura e da espessura da
película do filme de carbono. Este componente é o mais barato entre todos os outros, más
de outro modo emite muitos ruídos quando energizado. O valor de sua resistência é
disponibilizado em cores, e é possível identificar a resistência através da tabela de código
de cores.
Os resistores de filme de carbono são destinados ao uso geral e suas dimensões físicas
determinam a máxima potência que eles podem dissipar.
22
III – PROJETO 1: PISCAR LED
Os valores ôhmicos dos resistores podem ser reconhecidos pelas cores das faixas em suas
superfícies, cada cor e sua posição no corpo do resistor representam um número, de acordo
com o seguinte esquema:
A leitura dessas faixas deve ser feita sempre da extremidade para o centro, obedecendo ao
seguinte critério:
23
III – PROJETO 1: PISCAR LED
3ª faixa: indica o número de zeros que devem ser acrescentados aos dois algarismos
anteriores;
Pode ainda existir uma 4ª faixa para indicar a imprecisão ou tolerância do valor
da resistência.
24
III – PROJETO 1: PISCAR LED
3.1.5 jumpers
Jumpers são ligações móveis utilizadas entre dois pontos dentro de um circuito eletrônico.
São, geralmente pequenas peças ou fios metálicos, isolados por um material não condutivo,
responsáveis pela condução de eletricidade tanto em placas de circuitos impressos (PCI)
quanto em Protoboards.
Além de facilitar projetos de eletrônica, por possuírem tamanhos variados e diferentes cores
para facilitar as conexões de perto, médio e longo alcance. A divisão de cores é um grande
auxilio que lhe proporcionará, já que além de facilitar a montagem de seus projetos, identifica
a ligação entre as conexões do circuito eletrônico.
25
III – PROJETO 1: PISCAR LED
3.1.6 Arduino
3.1.6.1 Histórico
O conceito Arduino teve seu início no Interaction Design Institute1 na cidade de Ivrea, na
Itália, em 2005. O professor Massimo Banzi procurava um meio barato de tornar mais fácil
para os estudantes de design trabalharem com tecnologia. Ele discutiu seu problema com
David Cuartielles, um pesquisador visitante da Universidade de Malmö, na Suécia, que
estava procurando uma solução semelhante, e o Arduino nasceu.
1
Instituto de Design de Interação Ivrea (Interação-Ivrea) é uma organização independente sem fins lucrativos, fundada
pela Telecom Italia e Olivetti, e agora parte da iniciativa da Progetto Italia de Telecom Italia.
26
III – PROJETO 1: PISCAR LED
A nova placa foi chamada Arduino em referência a um bar local frequentado por membros
do corpo docente e alunos do instituto. As placas eram vendidas em forma de kit para que
os alunos fizessem seus próprios projetos. A tiragem inicial foi rapidamente vendida, e mais
unidades foram produzidas para manter a demanda.
Designers e artistas de outras áreas ouviram falar do Arduino e quiserem usá-lo em seus
projetos. Sua popularidade cresceu rapidamente quando o grande público percebeu que o
Arduino era um sistema de fácil utilização, de baixo custo e que poderia ser usado em seus
próprios projetos, bem como era uma excelente introdução para programação de
microcontroladores. O projeto original foi melhorado e novas versões foram introduzidas.
27
III – PROJETO 1: PISCAR LED
De acordo aos autores acima citados, podemos então definir o Arduino como uma plataforma
de hardware open-source de fácil utilização e ideal para criação de dispositivos que permitam
interação com o ambiente, através de dispositivos que utilizem dos mais variados tipos de
28
III – PROJETO 1: PISCAR LED
sensores de temperatura, luz, som, etc..., criando desta forma possibilidades infinitas e
ilimitadas de projetos.
As placas podem ser produzidas a mão ou compradas pré-montadas (Shields), que permitem
expandir a as funções do microcontrolador. Seu objetivo é a criação de ferramentas
acessíveis, com baixo custo, flexíveis e fáceis de usar voltados para fins comerciais,
domésticos ou móveis. Podendo ser utilizado de forma independente ou conectado a um
computador que possa oferecer informações, recursos e serviços.
Existem diversos modelos de placas Arduino, que variam em seu tamanho e quantidade de
portas disponíveis para ligar as shields ou dispositivos. Assim, o Arduino Mega possui várias
facilidades para se comunicar com um computador, com outro Arduino ou outro
microcontrolador. O que iremos abordar neste artigo é o modelo Arduino Mega 2560.
29
III – PROJETO 1: PISCAR LED
O Arduino Mega 2560 é uma placa de micro controlador baseada no ATmega 2560
(datasheet). Ele possui 54 pinos de entradas/saídas digitais, 16 entradas analógicas, 4
UARTs (portas seriais de hardware), um oscilador de cristal de 16 MHz, uma conexão USB,
uma entrada de alimentação, uma conexão ICSP e um botão de reset.
30
III – PROJETO 1: PISCAR LED
O Arduino Mega 2560 é compatível com a maioria dos Shields desenhados para os Arduino
Uno, Duemilanove e para o Diecimila. Possui ainda o dobro de memória do antigo Arduino
Mega (JACQUET, et al, 2011).
• VIN. Entrada de voltagem da placa Arduino quando se está usando alimentação externa (em
oposição aos 5 volts fornecidos pela conexão USB ou outra fonte de alimentação regulada).
31
III – PROJETO 1: PISCAR LED
• 3V3. Uma alimentação de 3,3 Volts gerada pelo chip FTDI. A corrente máxima é de 50 mA.
Cada um dos 54 pinos digitais do Mega2560 pode ser usado como entrada ou saída, usando
as funções de pinMode(), digitalWrite(), e digitalRead(). Eles operam a 5 volts. Cada pino
pode fornecer ou receber um máximo de 40 mA e possui um resistor interno (desconectado
por default). Em adição alguns pinos possuem funções especializadas:
• Serial: 0 (RX) e 1 (TX); Serial 1: 19 (RX) e 18 (TX); Serial 2: 17 (RX) e 16 (TX); Serial 3:
15 (RX) e 14 (TX): Usados para receber (RX) e transmitir (TX) dados seriais TTL. Pinos 0 e
1 são também conectados aos pinos correspondentes do chip serial FTDI USB-to-TTL.
32
III – PROJETO 1: PISCAR LED
• PWM: 0 a 13: Fornecem saída analógica PWM de 8-bits com a função analogWrite().
• SPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS): Estes pinos dão suporte à comunicação SPI
que, embora suportada pelo hardware, ainda não está incluída na linguagem Arduino.
• LED: 13: Há um LED conectado ao pino digital 13. Quando o pino está em HIGH o LED se
acende.
E ainda os pinos:
O Arduino Mega 2560 pode ser alimentado pela conexão USB ou com uma fonte externa. A
entrada de alimentação é selecionada automaticamente.
33
III – PROJETO 1: PISCAR LED
Alimentação externa (e não USB) pode ser tanto de uma fonte, como de baterias. A fonte
pode ser conectada plugando um conector de 2,1mm, positivo no centro, na entrada de
alimentação. Cabos vindo de uma bateria podem ser inseridos nos pinos terra (Gnd) e
entrada de voltagem (Vin) do conector da energia (JACQUET, 2011).
A placa pode operar com alimentação externa entre 6 e 20 volts. No entanto, se menos de 7
volts forem fornecidos o pino de 5V pode fornecer menos que esta voltagem e a placa poderá
ficar instável. Com mais de 12V o regulador de voltagem pode superaquecer e danificar a
placa. A faixa recomendável é de 7 a 12 Volts.
3.1.7.2 Microcontrolador
34
III – PROJETO 1: PISCAR LED
No mesmo chip estão integrados uma CPU, também chamada de core (núcleo), e circuitos
auxiliares (periféricos) como memória de programa, memória de dados, circuito de clock,
interface de comunicação serial, temporizadores/contadores, portas de I/O, dispositivos
periféricos como conversores analógico/digitais (ADC), conversores digitais/analógicos
(DAC) em casos, etc. Esses diferentes recursos embutidos em um microcontrolador variam
em função do modelo e do fabricante.
35
III – PROJETO 1: PISCAR LED
• RAM: Tipo de memória com acesso aleatório que mantém os dados armazenados
desde que seja mantida sua alimentação elétrica;
36
IV – LINGUAGENS C/C++
4. Código
37
IV – LINGUAGENS C/C++
Dessa maneira, podemos deixar uma nota para lembrar em outro momento para o que era
o código ou se alguma coisa ainda precisa ser introduzida ali.
4.2 Variáveis
Os tipos das variáveis não passam, na realidade, de uma abstração. Todas as variáveis,
independentemente do seu tipo, são representadas na memória do computador por padrões
de bits (dígitos binários, binary digit), os famosos "zeros e uns", colocados na zona de
memória atribuída a essa variável. O tipo duma variável indica simplesmente como um
dado padrão de bits deve ser interpretado.
Cada variável tem duas características estáticas: um nome e um tipo, e uma característica
dinâmica: um valor. Antes de usar uma variável é necessário indicar ao compilador qual
o seu nome e tipo, de modo a que a variável possa ser criada, i.e., ficar associada a uma
posição de memória (ou várias posições de memória), e de modo a que a forma de
interpretar os padrões de bits nessa posição de memória fique estabelecida.
38
IV – LINGUAGENS C/C++
Uma instrução onde se cria uma variável com um dado nome, dum determinado tipo, e
com um determinado valor inicial denomina-se definição. A instrução: int a = 10;
é a definição de uma variável chamada a que pode guardar valores do tipo int (inteiros)
e cujo valor inicial é o inteiro 10. A sintaxe das definições pode ser algo complicada, mas
em geral tem a forma acima, isto é, o nome do tipo seguido do nome da variável e
seguido de uma inicialização.
Quando uma variável é definida, o computador reserva para ela na memória o número
de bits necessário para guardar um valor do tipo referido (essas reservas são feitas em
múltiplos de uma unidade básica de memória, tipicamente com oito bits, ou seja,
um byte). Se a variável não for explicitamente inicializada, essa posição de memória contém
um padrão de bits arbitrário. Por exemplo, se se tivesse usado a definição: int a;
39
IV – LINGUAGENS C/C++
A sintaxe das definições de variáveis também permite que se definam mais do que uma
variável numa só instrução. Por exemplo,
int a = 0, b = 1, c = 2;
40
IV – LINGUAGENS C/C++
Os nomes das variáveis devem ser tão autoexplicativos quanto possível. Se uma variável
guarda, por exemplo, o número de alunos numa turma, deve se chamar
número_de_alunos_na_turma ou então número_de_alunos, se o complemento "na
turma" for óbvio pelo contexto do programa. É claro que o nome usado para uma variável
não tem qualquer importância para o compilador, mas uma escolha apropriada dos nomes
pode aumentar grandemente a legibilidade dos programas.
O operador representado pelo sinal de igualdade (=) em C/C++ não diz que dois valores são
iguais. Ele na verdade, atribui o valor da direta à variável. Por isto, chamamos ele de operador
de atribuição. Sendo assim, não confunda este operador de atribuição com um operador de
igualdade. Ele transfere um valor a uma variável e esse valor pode ser utilizado
posteriormente.
41
IV – LINGUAGENS C/C++
Se o pino for configurado como saída (OUTPUT) com a função pinMode(), sua tensão será
acionada para o valor correspondente: 5V (ou 3.3V em placas alimentadas com 3.3V) para
o valor HIGH, 0V (ou ground) para LOW.
Se o pino for configurado como entrada (INPUT), a função digitalWrite() irá ativar (HIGH) ou
desativar (LOW).
Se você não configurar o pino com pinMode() e OUTPUT, e conectar um LED ao pino,
quando chamar digitalWrite(HIGH), o LED pode aparecer um pouco apagado.
42
IV – LINGUAGENS C/C++
• uma tensão maior que 3.0V está presente no pino (em placas 5V);
• uma tensão maior que 2.0V está presente no pino (em placas 3.3V).
Um pino pode também ser configurado como entrada (INPUT) com pinMode(), e
posteriormente colocado em HIGH com digitalWrite().
Quando um pino é configurado como saída (OUTPUT) com pinMode(), e colocado em estado
HIGH com digitalWrite(), a tensão no pino é:
Nesse estado, o pino pode fornecer corrente (ver limites para sua placa, geralmente 40.0mA).
Isso pode ser usado, por exemplo, para acender um LED que está conectado ao ground
através de um resistor limitador de corrente.
43
IV – LINGUAGENS C/C++
• uma tensão menor que 1.5V está presente no pino (em placas 5V);
• uma tensão menor que 1.0V (proximamente) está presente no pino (em placas 3.3V).
Quando um pino é configurado como OUTPUT com pinMode(), e colocado em estado LOW
com digitalWrite(), a tensão no pino é 0 volts (tanto em placas de 5V como 3.3V boards).
Nesse estado o pino pode absorver corrente, o que pode ser usado, por exemplo, para
acender um LED conectado através de um resistor limitador de corrente aos +5 volts (ou
+3.3 volts).
4.4.3 delay()
[Funções Temporizadoras]
Pausa o programa por uma quantidade especificada de tempo (em milissegundos). Cada
segundo equivale a 1000 milissegundos.
44
IV – LINGUAGENS C/C++
4.4.4 pinMode()
4.4.5 OUTPUT
45
5. REFERÊNCIAS BIBLIOGRÁFICAS
SITE EXAME. Tecnologia. Morte de Dennis Ritchie, criador do Linux, completa 3 anos.
Disponível em: <https://exame.abril.com.br/tecnologia/morte-de-dennis-ritchie-criador-do-
linux-completa-3-anos/>. Acesso em: 14 de ago. 2019.
46
BLOG ELETRONS DA DEPRESSÃO. Código de Cores de Resistores. Disponível em:
<http://eletronsdadepressao.blogspot.com/2015/01/codigo-de-cores-de-resistores.html>.
Acesso em: 24 de jul. 2019.
47