18/0/!01! La gestione degli Interrupt con Arduino Obiettivo: S"#$io $el %#n&iona'en"o $egli in"err#(" $el 'icrocon"rollore )"'ega 'on"a"o a *or$o $elle *ase""e )r$#ino. Materiale utilizzato+ )r$#ino UNO ,o ME-). 1 LED 1 resis"ore $a !!0/ 1 P#lsan"e (er circ#i"o s"a'(a"o Ca0e""i $i collega'en"o 1rea$*oar$ Gli Interrupt: La "ecnica $ell2in"err#&ione ,in"err#(". consis"e nell2in0iare3 $a (ar"e $elle (eri%eriche3 #n segnale $i richies"a $i in"err#&ione4 il 'icrocon"rollore (#5 ges"ire le in"err#&ioni ris(e""an$o le (riori"6 nel caso 0i siano (i7 richies"e $i in"err#&ione in con"e'(oranea4 (ri'a $i in"erro'(ere il (rogra''a3 il 'icrocon"rollore %inisce l2is"r#&ione in corso e (oi (assa alla s#*ro#"ine $i ges"ione $ell2in"err#&ione. Pi7 se'(lice'en"e3 il (rocessore eseg#e nor'al'en"e il s#o la0oro3 'a 8#an$o s#cce$e 8#alcosa $i i'(or"an"e rice0e #na chia'a"a $al ges"ore $egli in"err#(" che gli $ice $i ini&iare la In"err#(" Ser0ice Ro#"ine ,ISR.. )n&ich9 i'(iegare "#""o il "e'(o a 0eri%icare #na cer"a con$i&ione all2in"erno $el co$ice3 0iene #sa"o #n *i" $el 'icrocon"rollore (er segnalare il 0eri%icarsi $i #na $e"er'ina"a con$i&ione. S#i chi( s"an$ar$ )"'ega sono (resen"i solo $#e ingressi $i in"err#("3 che sono collega"i agli ingressi $igi"ali ! e :. La s#*ro#"ine $i in"err#(" (#5 essere eseg#i"a s#l %ron"e $i $iscesa ,;)LLIN-.3 $i sali"a ,RISIN-. o((#re 8#an$o l2ingresso $el (ie$ino ca'*ia $i s"a"o ,C<)N-E.. L2is"r#&ione %on$a'en"ale (er l2#so $egli in"err#(" =+ attachInterrupt() la 8#ale rice0e "re (ara'e"ri+ il (ie$ino $a #"ili&&are3 il no'e $ella (roce$#ra $a eseg#ire e il "i(o $i e0en"o che si in"en$e in"erce""are. Procedimento: Il (rogra''a reali&&a"o = #"ile escl#si0a'en"e all2a((ren$i'en"o e all2#so $egli in"err#(" e consis"e nell2accensione $i #n Le$ ,collega"o al (in $igi"ale 1!. nel 'o'en"o in c#i 0iene (re'#"o il (#lsan"e ,collega"o in0ece al (in $igi"ale ! $i in"err#(".. >#al#n8#e sia l2o(era&ione che il 'icrocon"rollore s"ia eseg#en$o3 0iene a00ia"a la (roce$#ra rela"i0a all2in"err#(" e ges"i"i l2accensione $el Le$ e l2in0io $i #n 'essaggio "ra'i"e (or"a seriale che ci con%er'i l2e%%e""i0a esec#&ione $ella (roce$#ra associa"a all2in"err#(". Lo sche'a ele""rico $el sis"e'a $escri""o = ra((resen"a"o nella %ig#ra seg#en"e. Codice utilizzato:
pressione del tasto as Ese'(io $i (rogra''a %#n&ionan"e
Conclusioni: L2#"ili&&o $egli in"err#(" (#5 essere (ar"icolar'en"e #"ile nel caso in c#i ci si 0oglia accer"are che #n2o(era&ione 0enga eseg#i"a is"an"anea'en"e o((#re nel caso in c#i ci si 0oglia accer"are che 0enga eseg#i"a #n2o(era&ione in corris(on$en&a $i #n e0en"o asincrono es"erno. Per ese'(io nel caso in c#i si $e**a con"rollare lo s"a"o $i $i0ersi (in $i in(#"3 si (o"re**e rischiare che il (rogra''a non si accorga $i #n e0en"#ale ca'*ia'en"o $i s"a"o $i #n (in4 8#es"a si"#a&ione (o"re**e 0eri%icarsi se il 'icrocon"rollore s"a con"rollan$o lo s"a"o $i al"ri (ie$ini $i in(#". )*ili"an$o gli in"err#(" ci si (#5 assic#rare che il 'icrocon"rollore eseg#a i''e$ia"a'en"e la (roce$#ra associa"a all2in"err#(" e che 8#in$i 0enga ges"i"a la (riori"6 $egli e0en"i asincroni. Il 'icrocon"rollore )"'ega a *or$o $ell2)r$#ino Uno3 (re0e$e solo $#e ingressi $i in"err#("3 'en"re la )"'ega!?@0 a *or$o $ell2)r$#ino Mega (resen"a 8#a""ro ingressi $i in"err#(". Nel caso in c#i si 0ogliano collegare (i7 ele'en"i agli ingressi $i in"err#("3 si (#5 %ar #so $i '#l"i(leAer3 o((#re $i (or"e logiche OR che (er'e""ano $i a&ionare gli in"err#(" ogni 0ol"a che al'eno #no $ei $is(osi"i0i collega"i al ga"e raggi#nga #n 0alore logico al"o. )l"ra consi$era&ione $a %arsi nel caso in c#i si %accia #so3 a$ ese'(io3 $i (#lsan"i $a circ#i"o s"a'(a"o3 = la ges"ione $ei ri'*al&i. Sare**e o((or"#no reali&&are o((or"#ni circ#i"i an"iri'*al&o3 %acen$o #so $i (or"e NOT Triggera"e e $i %il"ri (assi0i RC (assa *asso che (er'e""ano $i ren$ere in0isi*ili al 'icrocon"rollore il 0eri%icarsi $i ri'*al&i a %re8#en&a ele0a"a e3 8#in$i3 in$esi$era"i. Una sol#&ione analoga 'a (i7 $is(en$iosa in %a""o $i risorse (er l2)r$#ino3 consis"e nel reali&&are3 scri0en$o a((osi"o co$ice3 #na sor"a $i an"iri'*al&o so%"Bare che ges"isca le 0aria&ioni $i s"a"o all2in"erno $i #n cer"o in"er0allo $i "e'(o.