//Signals2_Class.ino#include <LDR_Sensor_Class.h>#include "Signals2_Class.h"Signals2_Class signal1(4);Signals2_Class signal2(6,7);LDR_Sensor_Class sensor(A0);void setup() { signal1.begin( ); signal2.begin(1); sensor.begin( );}
void loop() { // signal1.signal_control(sensor.train_over_sensor( )); //follows LDR with 1 second delay signal1.signal_control(sensor.train_over_sensor( ),5);/* signal1.signal_control(0); signal2.signal_control(0); delay(750); signal1.signal_control(1); signal2.signal_control(1); delay(250); */}//Signals2_Class.cpp#include "Signals2_Class.h"Signals2_Class:: Signals2_Class(int red_led){ _red_led= red_led; }; Signals2_Class:: Signals2_Class(int red_led, int green_led){ _red_led= red_led, _green_led = green_led; _external_gate = 0; };void Signals2_Class::signal_control(int _dsp ){ int red,green; if (_pol) { if (_dsp) { red = HIGH; green=LOW;} else {red=LOW, green = HIGH; } } else if (_dsp) { red = LOW; green=HIGH;} else {red=HIGH, green = LOW; } digitalWrite(_red_led,red); if (!_external_gate) { digitalWrite(_green_led,green);}} void Signals2_Class::signal_control(int _dsp, int _wait ){ long delay4false = _wait * 1000; //convert to milli sec switch (signal_state) { case wait4train : signal_control(0); if (_dsp) { signal_state = wait4end; } break; case wait4end : signal_control (1); if (_dsp) start_time = millis( ); //keep resetting else { if (millis( )-start_time > delay4false) signal_state = wait4train; } break; }} void Signals2_Class::begin( ){ pinMode(_red_led,OUTPUT); digitalWrite(_red_led,HIGH); //turn on for testing if (!_external_gate) { pinMode(_green_led,OUTPUT); digitalWrite(_green_led,HIGH); //turn on for testing } };void Signals2_Class::begin(int pol ){ _pol = pol; begin( ); };//Signals2_Class.h#ifndef Signals2_Class_h #define Signals2_Class_h
#include "Arduino.h" class Signals2_Class { public: Signals2_Class(int red_led); Signals2_Class(int red_led, int green_led); void begin( ); void begin(int pol); void signal_control(int dsp); void signal_control(int dsp, int wait); private: int _red_led, _green_led; int _external_gate = 1; //assume NOT gate used int _pol = 1; //positive signals long int start_time; //start time of delay loop enum state {wait4train, wait4end} signal_state =wait4train; }; #endif