Depende de quanto o sensor consome. Diria que para a maior parte dos sensores que se usam com breadboard isso pode ser feito na boa, senão é adicionar um transistor. Mas porque quererias fazer isso? O projecto funciona a pilhas? Estás ciente que os sensores podem ter tempos de arranque até darem dados fiáveis?
Assim de repente...
const int pino_SMS = XXXX; //mete tu o pino...
....
loop() {
if (HIGH == digitalWrite(pino_SMS)) { //escolhe a polaridade do botão aqui...
//se botão ou sensor activado...
gsm.println("AT+CMGS=939393933\nACTIVADO");
gsm.print(0x1a); // isto é equivalente ao Ctrl + Z
}
}
Não me parece que colocar uma interrupção seja bom neste caso. Apenas tens de garantir que o programa passa pela parte de testar o pino de x em x milisegundos e isso por si só garante que não vais ter o sistema a mandar SMSs a torto e a direito. A propósito, seria benéfico colocares um tipo de lógica desses aqui para evitar que mandes SMSs devido a bouncing dos contactos. ![]()
Era isto que tinhas dúvidas?