Como parar uma interrupção externa temporariamente? - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)2024-03-29T02:02:05Zhttps://labdegaragem.com/forum/topics/como-parar-uma-interrup-o-externa-temporariamente?groupUrl=arduinocdigoscdigos&commentId=6223006%3AComment%3A705426&groupId=6223006%3AGroup%3A7081&feed=yes&xn_auth=nouse o comando detachinterrupt…tag:labdegaragem.com,2019-04-09:6223006:Comment:7054262019-04-09T16:09:54.533ZDaniel Amorimhttps://labdegaragem.com/profile/DanielAmorim
<p>use o comando detachinterrupt(0); para interromper a int0, assim reduz ruidos quando nao se faz necessario interrupçoes, pode ser que vc ja tenha resolvido pelo tempo, mas comentei pra ajudar a outras pessoas que precisem. abraço</p>
<p>use o comando detachinterrupt(0); para interromper a int0, assim reduz ruidos quando nao se faz necessario interrupçoes, pode ser que vc ja tenha resolvido pelo tempo, mas comentei pra ajudar a outras pessoas que precisem. abraço</p> ola Rafael tenho uma duvida c…tag:labdegaragem.com,2016-05-03:6223006:Comment:5317482016-05-03T12:50:25.075Zalisson jose dos santoshttps://labdegaragem.com/profile/alissonjosedossantos
<p>ola Rafael tenho uma duvida como você conseguiu arrumar esse problema ? </p>
<p>ola Rafael tenho uma duvida como você conseguiu arrumar esse problema ? </p> Opa, segue o codigo...
#inclu…tag:labdegaragem.com,2014-06-30:6223006:Comment:3645402014-06-30T10:02:05.896ZRafael Polettihttps://labdegaragem.com/profile/RafaelPoletti
<p>Opa, segue o codigo...</p>
<p>#include "IRremote.h"<br></br>#include "IRremoteInt.h"</p>
<p>#include <avr/io.h><br></br>#include <avr/interrupt.h></p>
<p>#define DETECT 2 //zero cross detect<br></br>#define GATE 13 //triac gate<br></br>#define PULSE 11 //trigger pulse width (counts)<br></br>int i=0;</p>
<p>IRrecv irrecv(PULSE); <br></br>decode_results results;</p>
<p>int conta=483;</p>
<p>void setup(){<br></br>Serial.begin(9600);<br></br> // set up pins<br></br> pinMode(DETECT, INPUT); //zero cross detect…<br></br></p>
<p>Opa, segue o codigo...</p>
<p>#include "IRremote.h"<br/>#include "IRremoteInt.h"</p>
<p>#include <avr/io.h><br/>#include <avr/interrupt.h></p>
<p>#define DETECT 2 //zero cross detect<br/>#define GATE 13 //triac gate<br/>#define PULSE 11 //trigger pulse width (counts)<br/>int i=0;</p>
<p>IRrecv irrecv(PULSE); <br/>decode_results results;</p>
<p>int conta=483;</p>
<p>void setup(){<br/>Serial.begin(9600);<br/> // set up pins<br/> pinMode(DETECT, INPUT); //zero cross detect<br/> digitalWrite(DETECT, HIGH); //enable pull-up resistor<br/> pinMode(GATE, OUTPUT); //triac gate control</p>
<p>// set up Timer1 <br/> //(see ATMEGA 328 data sheet pg 134 for more details)<br/> OCR1A = 100; //initialize the comparator<br/> TIMSK1 = 0x03; //enable comparator A and overflow interrupts<br/> TCCR1A = 0x00; //timer control registers set for<br/> TCCR1B = 0x00; //normal operation, timer disabled</p>
<p><br/> // set up zero crossing interrupt<br/> attachInterrupt(0,zeroCrossingInterrupt, RISING); <br/> //IRQ0 is pin 2. Call zeroCrossingInterrupt <br/> //on rising signal</p>
<p>irrecv.enableIRIn(); // Start the receive</p>
<p>}</p>
<p>//Interrupt Service Routines</p>
<p>void zeroCrossingInterrupt(){ //zero cross detect <br/> TCCR1B=0x04; //start timer with divide by 256 input<br/> TCNT1 = 0; //reset timer - count from zero<br/>}</p>
<p>ISR(TIMER1_COMPA_vect){ //comparator match<br/> digitalWrite(GATE,HIGH); //set triac gate to high<br/> TCNT1 = 65536-PULSE; //trigger pulse width<br/>}</p>
<p>ISR(TIMER1_OVF_vect){ //timer1 overflow<br/> digitalWrite(GATE,LOW); //turn off triac gate<br/> TCCR1B = 0x00; //disable timer stopd unintended triggers<br/>}</p>
<p>void loop(){ // sample code to exercise the circuit</p>
<p>if (irrecv.decode(&results)) <br/> {<br/> if (results.value==0x4FBA857 ){<br/> conta=conta-1;<br/> }<br/> else<br/> if (results.value==0x4FBD827 ){<br/> conta=conta+1;<br/> <br/> }<br/> Serial.println(conta);<br/> irrecv.resume(); // receive the next value<br/> <br/> }</p>
<p>i=conta;<br/>OCR1A = i; <br/>//if (i<40){i=485;} <br/>delay(15);</p>
<p>}</p>
Legaltag:labdegaragem.com,2014-06-29:6223006:Comment:3645192014-06-29T22:10:31.488ZEduardo castellanihttps://labdegaragem.com/profile/Eduardocastellani
<p></p>
<p>Legal</p>
<p></p>
<p>Legal</p> Então passa aqui pra gente co…tag:labdegaragem.com,2014-06-29:6223006:Comment:3645152014-06-29T17:42:58.811ZEuclides Franco de Rezendehttps://labdegaragem.com/profile/EuclidesFrancodeRezende
<p>Então passa aqui pra gente como você fez (montagem/fonte do programa)!</p>
<p>Aí já economiza outro post né?</p>
<p>Obrigado.</p>
<p></p>
<p></p>
<p>Então passa aqui pra gente como você fez (montagem/fonte do programa)!</p>
<p>Aí já economiza outro post né?</p>
<p>Obrigado.</p>
<p></p>
<p></p> Opa tinha razão Euclides, rea…tag:labdegaragem.com,2014-06-29:6223006:Comment:3643822014-06-29T16:01:11.886ZRafael Polettihttps://labdegaragem.com/profile/RafaelPoletti
<p>Opa tinha razão Euclides, realmente tinha conflito na biblioteca IR com a interrupção a qual eu utilizava. Por fim optei por utilizar um outro metodo de detecção de zero o qual não conflita com o IR e assim consegui resolver o problema.</p>
<p>Agradeço pela ajuda!!!!</p>
<p>Opa tinha razão Euclides, realmente tinha conflito na biblioteca IR com a interrupção a qual eu utilizava. Por fim optei por utilizar um outro metodo de detecção de zero o qual não conflita com o IR e assim consegui resolver o problema.</p>
<p>Agradeço pela ajuda!!!!</p> Veja que em momento algum é d…tag:labdegaragem.com,2014-06-29:6223006:Comment:3644842014-06-29T15:42:24.454ZEuclides Franco de Rezendehttps://labdegaragem.com/profile/EuclidesFrancodeRezende
<p>Veja que em momento algum é definido o pino de disparo da interrupção, isso porque está intrínseco as bibliotecas que vc. está usando. Pode procurar que lá tem outras definições de disparo OU o uso dos timers que provavelmente são necessários para o uso destas interrupções. É possível "quebrar-um-galho" (já ví fazerem, mas eu mesmo ainda não precisei).</p>
<p>Pode "cair pra dentro" da biblioteca e começar a debuga-la para ver o que pode ser feito para estes casos.</p>
<p>Boa…</p>
<p>Veja que em momento algum é definido o pino de disparo da interrupção, isso porque está intrínseco as bibliotecas que vc. está usando. Pode procurar que lá tem outras definições de disparo OU o uso dos timers que provavelmente são necessários para o uso destas interrupções. É possível "quebrar-um-galho" (já ví fazerem, mas eu mesmo ainda não precisei).</p>
<p>Pode "cair pra dentro" da biblioteca e começar a debuga-la para ver o que pode ser feito para estes casos.</p>
<p>Boa sorte.</p>
<p></p> Não não, não é sigiloso. Trat…tag:labdegaragem.com,2014-06-29:6223006:Comment:3644792014-06-29T14:15:46.295ZRafael Polettihttps://labdegaragem.com/profile/RafaelPoletti
<p>Não não, não é sigiloso. Trata-se de um dimmer que será incrementado pelo controle remoto. este dimmer será usado para controlar a temperatura da resistência de uma estufa de aquecimento de amostras utilizadas em testes de ensaio de tração. O meu problema é que não consigo incrementar os valores com o controle. Até encontrei uma função chamada detachInterrupt(1), porém mesmo assim não consigo executar corretamente sem grandes interferências e erros no programa.</p>
<p>Não não, não é sigiloso. Trata-se de um dimmer que será incrementado pelo controle remoto. este dimmer será usado para controlar a temperatura da resistência de uma estufa de aquecimento de amostras utilizadas em testes de ensaio de tração. O meu problema é que não consigo incrementar os valores com o controle. Até encontrei uma função chamada detachInterrupt(1), porém mesmo assim não consigo executar corretamente sem grandes interferências e erros no programa.</p> Como sou estudante de progra…tag:labdegaragem.com,2014-06-29:6223006:Comment:3645042014-06-29T13:09:03.946ZEduardo castellanihttps://labdegaragem.com/profile/Eduardocastellani
<p></p>
<p>Como sou estudante de programação, gostaria de saber ´para qual uso é, mas acho que é sigilo do seu projeto, ta certo.</p>
<p></p>
<p>abraço</p>
<p></p>
<p>Como sou estudante de programação, gostaria de saber ´para qual uso é, mas acho que é sigilo do seu projeto, ta certo.</p>
<p></p>
<p>abraço</p>