Arduino-ce_ Automação residencial com celular usando Arduino Mega
Projetos Arduino
Transcript of Projetos Arduino
-
8/19/2019 Projetos Arduino
1/10
Componentes necessários
1 Infravermelho receptor TL1838 (ou similar)1 Shield Rele2 Resistores de 330Ω
2 L!"s1 #roto$ord%ios &umpers
'l pessoal ho&e iremos acionar L!"s e rele via controle remoto* +ual,uercontrole remoto serve- de T. rdio***etc* #ara voc/ faer este pro&eto voc/precisar sa$er ,ual o valor headecimal de cada $oto ,ue ser utiliadoneste pro&eto para sa$er como visualiar o cdi4o ve&a o tutorialhttp-55facacomarduino*$lo4spot*com*$r520165075pro&eto36verificandocodi4ode*html* 9 o$teve os respectivos valores headecimais: nto vamos ao
pro&eto ;; 's cdi4os sero todos comentados para melhor entendimentopodendo ser retirados aps a compreenso de cada linha* https-55onedrive*live*com5:cid?f8@@fded1deA3faaBcid?%8@@%!!1!A3%==Cid?%8@@%!!1!A3%==D21122 E2) %aFa o doGnload do ar,uivo IRremote_Master;3) !escompacte o ar,uivoE4) =4ora entre no diretrio (H-) e na pasta =r,uivos de #ro4ramas =rduino
li$raries copie o ar,uivo descompactado nesta pastaE) #ronto para utiliarE
5 #ro&eto 3A =cionando L!Js e rele com infravermelho
Binclude KIRremote*h 55
-
8/19/2019 Projetos Arduino
2/10
pinode(pinoMled1 'T#T)Epinode(pinoMled2 'T#T)E
di4italOrite(pinoMrele estadoMrele)E 55 Holoca os pinos todos os pino em*** di4italOrite(pinoMled1 estadoMled1)E 55 estado $aio (pinos desli4ados)*
di4italOrite(pinoMled2 estadoMled2)E
Serial*$e4in(7A00)E 55 Inicialia a serial monitor*irrecv*ena$leIRIn()E 55 Inicialia o receptor IR*
U
void loop()Q
55 .erifica se o sensor IR rece$eu al4um sinal*
if (irrecv*decode(Cresults))Q
55 ostra na serial o valor lido pelo sensor IR* Serial*print(V.alor lido - V)E
Serial*println(results*value WX)E
55 =rmaena o sinal rece$ido pelo sensor IR*armaenavalor ? (results*value)EsGitch (armaenavalor)Qcase 00020!%- 55 .erifica se o $oto nYmero 1 do controle remoto foi
prescionada* 55 Se prescionado aciona o rele* estadoMrele ? ;estadoMreleE
di4italOrite(pinoMrele estadoMrele)E$rea>E
case 000=0Z%- 55 .erifica se o $oto nYmero 2 do controle remoto foiprescionada*
55 Se prescionado acende o primeiro L!*estadoMled1 ? ;estadoMled1E
di4italOrite(pinoMled1 estadoMled1)E$rea>E
case 000A07%- 55 .erifica se o $oto nYmero 3 do controle remoto foiprescionada* 55 Se prescionado ascende o se4undo L!*
estadoMled2 ? ;estadoMled2Edi4italOrite(pinoMled2 estadoMled2)E$rea>E
Uirrecv*resume()E 55Le o primo valor
UU
-
8/19/2019 Projetos Arduino
3/10
#ara certificar se o cdi4o est correto pressione o $oto .erif[5Hompile* Se tudo estiver correto pressione o $oto pload para faer o upload do cdi4opara seu =rduino*
!bra se" #erial Monitor pressionado as teclas Ctrl $ #%i&t $ Msim"ltaneamente'
#ressione ,ual,uer um dos $ot\es- 1 2 3 de seu controle uma ve e ver orele os L!"s serem acionados* #ara desli4alos $asta pressionalosnovamente*
(roeto 1* + #ensor de "midade e temperat"ra ,-.11
'l pessoal sa$emos ,ue a umidade relativa do ar influencia na nossasensaFo de conforto sendo uma umidade de 6ZD uma umidade ideal* =umidade $aia pode provocar al4uns efeito no ser humano tais como-ressecamento da pele aumento na eletricidade esttica entre outras* #or issovamos aprender como utiliar o sensor !WT11* ste sensor P um pe,uenomdulo comprado em sites da Hhina ou no
-
8/19/2019 Projetos Arduino
4/10
(asso 3: #e4ue o ar,uivo $aiado e descompacteo dentro da pasta li$raries epronto a4ora voc/ pode compilar o cdi4o sem nenhum erro*
Conectando os componentes
#rimeiro certifi,uese de ,ue seu =rduino este&a desli4ado desconectandoodo ca$o S
-
8/19/2019 Projetos Arduino
5/10
lcd*setHursor(01)E 55 Holoca o cursor na linha 0 e coluna 1 lcd*print(Vmidade-V)E lcd*print(!WT*humidit[)E lcd*print(VDV)E dela[(2000)E 55 =4uarda 2 se4undos
U
#ara certificar se o cdi4o est correto pressione o $oto .erif[5Hompile* Se tudo estiver correto pressione o $oto pload para faer o upload do cdi4opara seu =rduino* #ronto voc/ a4ora pode a&ustar o contraste 4irando opotenci]metro e verificar a umidade e a temperatura do am$iente*
(roeto 1 + #ensor "ltras5nico básico
'l pessoal vamos aprender como utiliar o sensor ultras]nico em nossospro&etos* ' modelo utiliado ser o WHSR'6 encontrado em ,ual,uer lo&a ,uecontenha componetes para =rduino*
's cdi4os sero todos comentados para melhor entendimento podendo ser retirados aps a compreenso de cada linha*
-
8/19/2019 Projetos Arduino
6/10
55 #ro&eto 1Z Sensor ultras]nico $sico
Bdefine tri4#in 12Bdefine echo#in 13
void setup() Q Serial*$e4in (7A00)E pinode(tri4#in 'T#T)E pinode(echo#in IN#T)E
U
void loop() Q lon4 duration distanceE 55 http-55arduino*cc5en5Reference5Lon4 di4italOrite(tri4#in L'O)E 55 Honfi4ura o pino 12 com um pulso $aio VL'OV
ou desli4ado ou ainda 0 dela[icroseconds(2)E 55 =4uarda 2 microsse4undos
di4italOrite(tri4#in WIW)E 55 Honfi4ura o pino 12 com pulso alto VWIWV ouli4ado ou ainda 1 dela[icroseconds(10)E 55 =4uarda 10 microsse4undos di4italOrite(tri4#in L'O)E 55 Honfi4ura o pino 12 com pulso $aio novamente duration ? pulseIn(echo#in WIW)E 55 #ulseIn l/ o tempo entre a chamada e opino entrar em Wi4h
5_sse calculo P $aseado em s ? v * t lem$rando ,ue o tempo vem do$rado por,ue P o tempo de ida e volta do ultrassom _5
distance ? ((duration52) 5 27*1)E
Serial*print(distance)E Serial*println(V HmV)E
dela[(Z00)EU
#ara certificar se o cdi4o est correto pressione o $oto .erif[5Hompile* Setudo estiver correto pressione o $oto pload para faer o upload do cdi4opara seu =rduino* #ronto a$ra o Serial onitor e colo,ue um o$&eto na frenteno sensor ultras]nico e voc/ ver a distbcia ,ue o o$&eto est em relaFo aosensor*
Imaem do #erial Monitor
-
8/19/2019 Projetos Arduino
7/10
(roeto 13 6 #er0o motor controlado por !rd"ino
'l pessoal & vimos como controlar um motor HH e motor de passo* =4oravamos ver como funciona um servo motor conectado ao =rduino* 's cdi4os
sero todos comentados para melhor entendimento podendo ser retiradosaps a compreenso de cada linha*
-
8/19/2019 Projetos Arduino
8/10
void loop()Q
for(pos ? 0E pos K 180E pos ? 1) 55 .ai de 0 4rau a 180 em passo de 1 4rau
Q servo1*Grite(pos)E 55 Hhama o servo1 para ir para a posiFo da variavelVposV
dela[(Z0)E 55 =4urade Z0ms para para o servo1 atin4ir a posiFoUfor(pos ? 180E pos?1E pos?1) 55 .ai de 180 4raus ate 0Q
servo1*Grite(pos)E 55 Hhama o servo1 para ir para a posiFo da variavelVposV
dela[(10)E 55 =4uarda 10ms para o servo1 atin4ir a posiFoU
U
(roeto 34 + 8eri&icando cdio de comando de "m controle remoto
'l pessoal vamos desco$rir como utiliar uma tecnolo4ia um pouco anti4aporPm ainda muito utiliado- o infravermelho* =o apertar um $oto de umcontrole remoto de uma T. o HI envia um comando $inrio ou headecimalpelo emissor e o receptor capta estes dados e realia a funFo pro4ramada
pelo respectivo comando* Ns sa$emos o valor headecimal5$inrio de cada$oto: No atP a4ora;'s cdi4os sero todos comentados para melhor entendimento podendo ser retiradosaps a compreenso de cada linha*
-
8/19/2019 Projetos Arduino
9/10
4) =4ora entre no diretrio (H-) e na pasta =r,uivos de #ro4ramas =rduino li$rariescopie o ar,uivo descompactado nesta pastaE
) #ronto para utiliarE
!ora 0amos ao cdio
55 #ro&eto 36 .erificando cdi4o de comando de um controle remoto
Binclude KIRremote*h 55
-
8/19/2019 Projetos Arduino
10/10
irrecv*resume()E 55 =4uarda para rece$er o novo valor ,uando for pressionado umoutro $oto*
U
dela[(100)E 55 ! um tempo de 100 ms entre um valor e outro*
U
#ara certificar se o cdi4o est correto pressione o $oto .erif[5Hompile*
Se tudo estiver correto pressione o $oto pload para faer o upload do cdi4o paraseu =rduino*
!bra se" #erial Monitor pressionado as teclas Ctrl $ #%i&t $ M sim"ltaneamente'
#ressione ,ual,uer $oto de seu controle remoto e se tudo estiver '^ voc/ verimpresso na tela do Serial onitor os dados de seu controle remoto*