- // Dr. Jack Mr. O'Lantern
- // pkvi
- #include "Servo.h"
- Servo jack;
- Servo pour;
- const int red = 4;
- const int blue = 5;
- const int fan = 2;
- const int sensor = A0;
- // Trigger Distance in CM
- const int dist = 90;
- void setup() {
- jack.attach(7);
- jack.write(0);
- pour.attach(3);
- pour.write(10);
- pinMode(red, OUTPUT);
- pinMode(blue, OUTPUT);
- pinMode(fan, OUTPUT);
- Serial.begin(9600);
- digitalWrite(red, HIGH);
- digitalWrite(blue, LOW);
- delay(2500);
- digitalWrite(red, LOW);
- digitalWrite(blue, HIGH);
- delay(2500);
- }
- void loop() {
- jack.write(0);
- pour.write(10);
- digitalWrite(red, HIGH);
- digitalWrite(blue, LOW);
- digitalWrite(fan, LOW);
- delay(20);
- digitalWrite(red, LOW);
- delay(40);
- digitalWrite(red, HIGH);
- long prox, proxcm;
- pinMode(sensor, OUTPUT);
- digitalWrite(sensor, HIGH);
- delayMicroseconds(6);
- digitalWrite(sensor, LOW);
- pinMode(sensor, INPUT);
- prox = pulseIn(sensor, HIGH);
- proxcm = mtc(prox);
- Serial.println(proxcm);
- if (proxcm < dist) {
- digitalWrite(red, LOW);
- pour.write(75);
- jack.write(130);
- delay(100);
- digitalWrite(fan, HIGH);
- delay(2000);
- digitalWrite(blue, HIGH);
- delay(10000);
- }
- delay(100);
- }
- long mtc(long ms) {
- return ms / 29 / 2;
- }