summaryrefslogtreecommitdiff
path: root/C/HF/chap4/lab1/moisture.c
blob: 349050f63a7cdf2f59f81626b5a91466dd758ca0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/* This works - tested on Tinkercad */
#define THRESHOLD 800
#define DRY 500

#define LED 13

setup(){
	Serial.begin(9600);
	pinMode(LED, OUTPUT);
	digitalWrite(LED, LOW);
}

void blink_led(long interval) {
	digitalWrite(LED, LOW);
	delay(interval);
	digitalWrite(LED, HIGH);
}

void led_on(void)
{
	if (digitalRead(LED) == LOW)
		digitalWrite(LED, HIGH);
}

void led_off(void)
{
	if (digitalRead(LED) == HIGH) {
		digitalWrite(LED, LOW);
		Serial.println("Thank you, Seymour");
	}
}

void loop(){
	int moist = analogRead(1);
	if (moist > THRESHOLD) {
		led_off();
		continue;
	}

	if (moist < DRY)
		blink_led(500);
	else
		led_on();
	Serial.println("Feed me!");
}