VENHO SOLICITAR AOS AMIGOS DESTE FORUM,  AJUDA PARA ADAPTAÇÃO DO CODIGO DA VIDEO AULA  Curso Arduino Advanced - Aula 14 (TRIAC)

https://www.youtube.com/watch?v=CmU2u2kHH1U&list=PL05085BAC19CB...

OBS a explicação sobre o codigo, começa em 34:25

O CODIGO ESTA ABAIXO.

NESTA PARTE DO CODIGO - int dimmer[7] = { 1, 105, 100, 75, 50, 25, 10 };

PRECISO ACRESCENTAR UMA VENTOINHA E AO INVEZ DE LIGAR A UMA LAMPADA, EU LIGARIA A UMA RESISTÊNCIA DE FIO CROME DE 400V E A VENTOINHA, E PRECISO LIGAR UM SENSOR PIR, QUANDO EU ME APROXIMAR, A RESISTÊNCIA E A VENTOINHA, QUE ESTARIAM LIGADAS AO MAXIMO, AI ENTRA O SENSOR PIR, QUE PERCEBERIA A MINHA PRESENÇA E DIMINUIRIA A POTENCIA DOS DOIS, DA RESISTENCIA E DA VENTOINHA E QUANDO EU ME AFASTASSE, VOLTARIA TUDO AO NORMAL, OU SEJA, O FUNCIONAMENTO MAXIMO.

PENSO EM AQUI, MUDAR PARA: int dimmer = { 105, 25, }; se aproximando, cai de 105 para 25. e a ventoinha também.

SE afastando, volta ao normal  int dimmer[7] = { 25, 105, }; aumenta novamente tudo.

agradeço a ajuda de todos. Obs, todo o codigo abaixo e no meu caso, não será preciso dos botões, pois será tudo feito pelo sensor.

int UP = 7;
int DOWN = 8;
int LAMP = 3;
int dimming = 128;
int counts = 7;
int dimmer[7] = { 1, 105, 100, 75, 50, 25, 10 }; EM 44:00 – CONFORME APERTA O BOTÃO UP, ELE VAI DECREMENTANDO, APAGANDO A LUZ - OBS
int i = 0;

void setup()
{
//Serial.begin(9600);
//delay(1000);
pinMode(UP, INPUT);
pinMode(DOWN, INPUT);
pinMode(LAMP, OUTPUT);
digitalWrite(UP, HIGH);
digitalWrite(DOWN, HIGH);
attachInterrupt(0, zero_crosss_int, RISING);
}

void loop()
{
if (!digitalRead(UP) || !digitalRead(DOWN))
{
if (verifica_botao(UP))
{
if (i < (counts - 1)) i++;
//Serial.print("UP: ");
//Serial.println(i, DEC);
}
else if (verifica_botao(DOWN))
{
if (i > 0) i--;
//Serial.print("DOWN: ");
//Serial.println(i, DEC);
}
}
//Serial.print("VALOR: ");
// Serial.println(i, DEC);
dimming = dimmer[i];
delay(100);
}

void zero_crosss_int()
{
int dimtime = (65 * dimming);
delayMicroseconds(dimtime);
digitalWrite(LAMP, HIGH);
delayMicroseconds(8.33);
digitalWrite(LAMP, LOW);
}

byte verifica_botao(byte botao)
{
if (!digitalRead(botao))
{
unsigned long tempo = millis() + (150 - dimming);
while(tempo > millis())
{
if (digitalRead(botao)) return LOW;
}
return HIGH;
}
else
return LOW;
}

Exibições: 179

Responder esta

Respostas a este tópico

Chefe no se caso como são apenas dois casos eu faria um if simples tipo : 

se (valor porta sensor = alto) 

   valordimming = dimmer(1) ;

se não 

  valordimming = dimmer(0)  ;

Dai só adequar ai o funcionamento do sensor, se não me engano ele é comum fechado, ou seja se você se aproximar ele abre. Mais ai é só achismo. 

OK, obrigado e um abraço

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço