Nano V3 + SIM800L v2 - 2 diody + call - dlaczego świecą obie?

Masz problem z Arduino? Tutaj możesz szukać pomocy.
ODPOWIEDZ
mojojek
Młodszy majsterkowicz
Posty: 2
Rejestracja: 10 lip 2018, 20:43

Nano V3 + SIM800L v2 - 2 diody + call - dlaczego świecą obie?

Post autor: mojojek » 10 lip 2018, 20:45

Witam

Mam mały problem z kodem. Zmajstrowałem (a w zasadzie trochę zmodyfikowałem) kod, który po przyciśnięciu przycisku zapala czerwoną diodę a po jego zwolnieniu powinien gasić czerwoną i zapalać zieloną. Zamiast przycisku użyłem kontaktronu.

Niestety coś pokręciłem i przy zwolnieniu pali się zielona (tak jak chcę) a po przyciśnięciu palą się obie. Czy mógłby ktoś mnie poprawić? :)
Dodatkowo chciałbym dodać do kodu funkcję, która będzie wykonywać połączenie telefoniczne po zwolnieniu przycisku na podany numer. Jak to zrobić?

Oto mój kod:

void setup() {
pinMode(2, INPUT_PULLUP);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
digitalWrite(3,LOW);
digitalWrite(4,HIGH);
}

void loop() {

if (digitalRead(2)==LOW)
{
digitalWrite(3,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(4,HIGH);
}
}

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


uzi18
Młodszy majsterkowicz
Posty: 11
Rejestracja: 10 maja 2018, 05:06

Re: Nano V3 + SIM800L v2 - 2 diody + call - dlaczego świecą obie?

Post autor: uzi18 » 11 lip 2018, 00:30

Skorzystaj z biblioteki Button, bedzie to czytelniejsze i wygodniejsze dla Ciebie

Wysłane z mojego MI MAX przy użyciu Tapatalka

mojojek
Młodszy majsterkowicz
Posty: 2
Rejestracja: 10 lip 2018, 20:43

Re: Nano V3 + SIM800L v2 - 2 diody + call - dlaczego świecą obie?

Post autor: mojojek » 11 lip 2018, 00:36

Dziękuję. Diody już ogarnąłem i działają tak jak powinny. Mam jednak następny problem. Podpiąłem SIM800L v2 i wysyła mi smsy testowe jak wgram mu taki program przy starcie. Niestety nie wiem jak zrobić aby przy zapaleniu zielonej diody (po "else") wykonywał połączenie na mój numer. Pomoże ktoś dodać taką opcję (podejrzewam, że ATD i ATH)?

void setup()
{
pinMode(2, INPUT_PULLUP);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
}
void loop()
{
if (digitalRead(2)==LOW)
{
digitalWrite(4,HIGH);
digitalWrite(3,LOW);
}
else
{
digitalWrite(4,LOW);
digitalWrite(3,HIGH);
}
}
Bob2462
Majsterkowicz
Posty: 72
Rejestracja: 13 mar 2016, 00:11

Re: Nano V3 + SIM800L v2 - 2 diody + call - dlaczego świecą obie?

Post autor: Bob2462 » 11 lip 2018, 17:14

Przede wszystkim nie wstawiaj kodu źródłowego jako zwykły tekst bo to irytujące.
Użyj znaczka [ code ] twój kod [ / code ] (usuń spacje, musiałem je dodać bo inaczej by się to nie wyświetliło)

Co do twojego kodu to napisałem takie coś:

Kod: Zaznacz cały

#define LED_DELAY 4000 //jak długo diody mają pozostać zapalone po alarmie  (4000 ms czyli 4 s)

bool alarm = false;//flaga alarmu 
bool SMS = false;//wyślij SMS (flaga)

unsigned long timer0 = 0;//timer który będzie warunkował jak długo mamy zapalić diody po alarmie 
//obsługa panelu kontrolnego
void LEDY()
{
	if(alarm == true)//Jeśli flaga alarmu jest postawiona to ją wyczyść i ustaw timer ledów 
	{
		timer0 = millis()+LED_DELAY;//ustaw czas timera 0
		alarm = false;
	}
	
	if(timer0 > millis())//jeśli alarm jest włączony (czas timera 0 nie upłynął)
	{
		digitalWrite(3, HIGH);
		digitalWrite(4, LOW);
	}
	else//jeśli nie 
	{
		digitalWrite(3,LOW);
		digitalWrite3(4,HIGH);
	}
	
}

//sprawdź czy alarm działa 
void sprawdzAlarm()
{
	if(digitalRead(2)==LOW)
	{
		alarm = true;//ustaw flagę alarmu 
		SMS = true;//wyślij SMS
	}	
}

//wyślij SMS
void sprawdzSMS()
{
	//
	if(SMS == true)
	{
		//wyślij SMS tu wpisz kod do wysyłania SMS
		//sprawdź czy SMS został wysłany 
		if(1)//w warunku zamist 1 wpisz sprawdzenie czy operacja zakończyła się sukcesem
		{
			SMS = false;
		}
	}
}


void setup()
{
	//ustawienie pinów 
	pinMode(2, INPUT_PULLUP);
	pinMode(3, OUTPUT);
	pinMode(4, OUTPUT);
	digitalWrite(3,LOW);
	digitalWrite(4,LOW);
	
	//tutaj konfiguracja i uruchomienie modułu SIMcośtam 
}
void loop()
{
	sprawdzAlarm();//sprawdź alarm
	LEDY();//obsługa LEDów
	sprawdzSMS();//wyślij SMS jeśli trzeba
}
ODPOWIEDZ

Strony partnerskie: