Relatório Microprocessados 4
Relatório Microprocessados 4
ARDUINO
1. Apresentação
Participantes:
Gabriel de Melo Siebeneichler - 20161010700320
Matheus de Alecrim Laranjeira - 20162010700167
2. Material Utilizado
• 01 Arduino Mega;
• 01 Cabo USB;
• 01 Sensor LM 35;
• 03 Leds;
• 03 Botões;
• 01 Protoboard;
• Fios.
• Shild ethernet
3. Procedimento Prático
Prática 3.1. Projetar um sistema, que seja capaz de energizar três LEDS. Defina um desses LEDS
como o LED_A, LED_B e LED_C. Em seguida, programe a plataforma para acionar esses leds
alternadamente por 1 segundo (quando um acende, os outros apagam). Esse ciclo deve se repetir
por 2 vezes. Em seguida, todos os leds devem ser acesos por 3 segundos e o ciclo deve recomeçar.
Use laços de repetição.
int i = 0;
void setup() {
M o d e l o d e R e l a t ó r i o - P á g i n a 1 | 17
pinMode(LED_B,OUTPUT); // LED_B como saida
void loop() {
for(i=0;i<2;i++){
delay(1000);
delay(1000);
delay(1000);
delay(3000);
S i s t e m a s M i c r o p r o c e s s a d o s – 2 0 1 7 . 1 - P á g i n a 2 | 17
3.2. Faça um programa onde, ao pressionar um botão, um LED seja aceso. Porém, esse led só pode
ser apagado quando o mesmo botão for pressionado novamente.
}
void loop()
{
int estado = 0;
if(!BOTAO && estado == 0){ // se o BOTAO for pressionado
}
void loop()
{
int estado = 0;
if(!BOTAO && estado == 0){ // se o BOTAO for pressionado
3.4 . Faça um programa que conte de 1 a 30. Quando o contador estiver entre 5 e 20, acenda o LED
13. Quando o contador estiver entre 21 e 30, acenda o led 12 e apague o led 13. Imprima o valor do
contador e os estados dos leds no Serial Monitor.
void setup(){
void loop() {
S i s t e m a s M i c r o p r o c e s s a d o s – 2 0 1 7 . 1 - P á g i n a 4 | 17
3.5. Faça um programa que conte de 0 a 20, usando um botão para incrementar o valor e outro para
diminuir a contagem. Ao chegar nos limites, imprima na tela “limite alcançado”, quando o botão for
pressionado. Imprima o valor da contagem em cada interação.
void setup(){
Serial.begin(9600); //Iniciando a porta serial na velocidade 9600 bits por segundo
Serial.println("Iniciando programa..."); //imprime na tela a mensagem e pula uma linha
pinMode(PIN7, INPUT); //determina PIN7 como entrada digital
pinMode(PIN8, INPUT); //determina PIN8 como entrada digital
}
void loop() {
BOTAO = digitalRead(PIN7);
BOTAO2 = digitalRead(PIN7);
3.6. Faça um programa que controle a luminosidade de um LED a partir de dois botões. Use um
botão para aumentar a luminosidade e outro para diminuí-la.
void setup() {
S i s t e m a s M i c r o p r o c e s s a d o s – 2 0 1 7 . 1 - P á g i n a 5 | 17
pinMode(BOTAO2, INPUT); //define BOTAO2 como entrada
void loop() {
analogWrite(LED, brilho);
analogWrite(LED, brilho);
float temperatura;
void setup() {
Serial.println("Iniciando o Sistema");
S i s t e m a s M i c r o p r o c e s s a d o s – 2 0 1 7 . 1 - P á g i n a 6 | 17
pinMode(LED1, OUTPUT); //define LED1 como saída
void loop() {
Serial.print(temperatura);
3.8. Modifique o programa anterior para ler também um sensor LDR. Quando a luminosidade
ultrapassar 650, acenda um led e quando diminuir, apague o led. Mostre os valores lidos de
luminosidade e temperatura na porta serial a cada 3 segundos.
float temperatura;
void setup() {
S i s t e m a s M i c r o p r o c e s s a d o s – 2 0 1 7 . 1 - P á g i n a 7 | 17
Serial.println("Iniciando o Sistema");
void loop() {
Serial.print(temperatura);
Serial.print(LDRvalor);
S i s t e m a s M i c r o p r o c e s s a d o s – 2 0 1 7 . 1 - P á g i n a 8 | 17
}
3.9.. Modifique o programa anterior para exibir em uma página web hospedada no arduino o valor
da temperatura medida, o valor de luminosidade medida e o status dos leds.
#include <SPI.h>
#include <Ethernet.h>
//definindo Gateway
// definindo endereço IP
EthernetServer server(80);
float temperatura;
void setup() {
S i s t e m a s M i c r o p r o c e s s a d o s – 2 0 1 7 . 1 - P á g i n a 9 | 17
Serial.begin(9600); //inicializandoa porta serial
Serial.println("Iniciando o Sistema");
printIPAddress();
server.begin();
void loop() {
if (client)
while (client.connected())
client.println("Content-Type: text/html");
client.println();
client.println("<html><body>");
client.print("<p>A0=");
client.print(analogRead(0));
client.println("</p>");
S i s t e m a s M i c r o p r o c e s s a d o s – 2 0 1 7 . 1 - P á g i n a 10 | 17
if(valor_LDR >650){ // se o valor lido é > 650
client.print(temperatura);
client.print(valor_LDR);
client.println("</p>");
client.println("</body></html>");
client.stop();
delay(1);
void printIPAddress()
S i s t e m a s M i c r o p r o c e s s a d o s – 2 0 1 7 . 1 - P á g i n a 11 | 17
{
Serial.print(Ethernet.localIP()[thisByte], DEC);
Serial.print(".");
Serial.println();
3.10. Modifique o programa anterior e coloque também a indicação do status de um botão. Quando
esse for pressionado, a página deve indicar que ele ligou e somente quando o botão for pressionado
novamente a página deve indicar que o botão foi desligado
include <SPI.h>
#include <Ethernet.h>
//definindo Gateway
// definindo endereço IP
S i s t e m a s M i c r o p r o c e s s a d o s – 2 0 1 7 . 1 - P á g i n a 12 | 17
EthernetServer server(80);
float temperatura;
void setup() {
printIPAddress();
server.begin();
void loop() {
if (client)
while (client.connected())
client.println("Content-Type: text/html");
client.println();
S i s t e m a s M i c r o p r o c e s s a d o s – 2 0 1 7 . 1 - P á g i n a 13 | 17
// send the body
client.println("<html><body>");
client.print("<p>A0=");
client.print(analogRead(0));
client.println("</p>");
if(estado_botao==LOW){
if(!digitalRead(BOTAO)){
if(estado){
estado = LOW;
}else{
estadO = HIGH;
digitalWrite(LED3, HIGH);
client.print(temperatura);
S i s t e m a s M i c r o p r o c e s s a d o s – 2 0 1 7 . 1 - P á g i n a 14 | 17
client.print(" - Luminosidade: "); //imprime o valor da luminusidade
client.print(valor_LDR);
client.println("</p>");
client.println("</body></html>");
client.stop();
delay(1);
void printIPAddress()
Serial.print(Ethernet.localIP()[thisByte], DEC);
Serial.print(".");
Serial.println();
S i s t e m a s M i c r o p r o c e s s a d o s – 2 0 1 7 . 1 - P á g i n a 15 | 17
4.Questões
"Shields" é o nome dado às placas de expansão de hardware que encaixam na placa Arduíno
principal. Através dos shields, uma placa Arduino pode ser melhorada .
Os circuitos contidos nos diversos shields contém uma eletrônica que adiciona funções que a
placa principal não possui. Como exemplos temos shields para controle de motores, shields
para comunicação Wi-Fi, shields para acoplamento de sensores.
As Redes Ethernet foram inventadas em 1973, por Robert Metcalfe em um projeto atribuído
a Xerox Palo Alto, hoje sendo o padrão mais aceito no mundo para intercomunicação de
dados em rede.
Existem duas versões do protocolo IP: o IPV4 é a versão atual, que utilizamos na
grande maioria das situações, enquanto o IPV6 é a versão atualizada, que prevê um
número brutalmente maior de endereços e deve começar a se popularizar a partir de
2010 ou 2012, quando os endereços IPV4 começarem a se esgotar.
S i s t e m a s M i c r o p r o c e s s a d o s – 2 0 1 7 . 1 - P á g i n a 16 | 17
No IPV4, os endereço IP são compostos por 4 blocos de 8 bits (32 bits no total), que são
representados através de números de 0 a 255, como "200.156.23.43" ou "64.245.32.11".
Ao acessar uma página web através de um navegador, ele é capaz de interpretar o código
HTML e renderizá-lo de forma compreensível para o usuário final, exibindo textos, botões,
etc. com as configurações definidas por meio das diversas tags que essa linguagem dispõe.
5.Bibliografia
https://www.automacaoindustrial.info/redes-ethernet-industrial-conceito-e-aplicacao-na-
automacao-e-controle-industrial/
http://www.hardware.com.br/termos/ipv4
https://www.devmedia.com.br/html-basico-codigos-html/16596
S i s t e m a s M i c r o p r o c e s s a d o s – 2 0 1 7 . 1 - P á g i n a 17 | 17