Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Jaclyn Goldstein
- * Photoresistor stuff
- * Version 1
- */
- #include <Wire.h>
- #include <DS3231.h>
- DS3231 clock;
- RTCDateTime dt;
- #include <LiquidCrystal.h>
- LiquidCrystal lcd (11,10,2,3,4,5);
- #include <Servo.h>
- const int photoPin= A5; // change to data from RTC
- int photoVal=0; //change to time
- const int pinPhoto= A2;
- int lightLevel=0;
- const int pinLEDred=9; //red
- const int pinLEDgreen=10; //green
- const int pinLEDblue=11; //blue
- int brightness=0;
- const int pinButt=A1;
- int lastButt= 0;
- int newButt=0;
- unsigned long timeStart;
- int minimum=5000;
- int maximum=-5000;
- Servo miServito;
- const int PotPin=A0;
- int PotVal;
- int angle;
- int ledPin = 9; // choose the pin for the LED
- int inputPin = 7; // choose the input pin (for PIR sensor)
- int pirState = LOW; // we start, assuming no motion detected
- int val = 0; // variable for reading the pin status
- //still dont know variables its fine literawuihdsofik
- const int pinLED1=13;
- const int pinLED2=12;
- void setup() {
- // put your setup code here, to run once:
- pinMode (pinPhoto, INPUT);
- Serial.begin (9600);
- pinMode (pinButt, INPUT);
- pinMode(inputPin, INPUT); // declare sensor as input
- Serial.begin(9600);
- pinMode (PotPin, INPUT);
- miServito.attach (9);
- pinMode (photoPin, INPUT);
- Serial.begin (9600);
- // Initialize DS3231
- Serial.println("Initialize DS3231");;
- clock.begin();
- // Set sketch compiling time
- clock.setDateTime(__DATE__, __TIME__);
- lcd.begin (16,2);
- lcd.print ("Hello");
- lcd.setCursor (12,0);
- lcd.print ("...");
- delay (1000);
- lcd.clear ();
- lcd.setCursor (4,1);
- lcd.print ("Human");
- delay (2000);
- lcd.clear ();
- pinMode (pinLED1, OUTPUT);
- pinMode (pinLED2, OUTPUT);
- }
- void loop()
- {
- newButt= debounce (lastButt);
- if (newButt== HIGH && lastButt==LOW)
- {
- Serial.println ("Calibrating...");
- lcd.print ("Calibrating...");
- calibrate ();
- }
- lastButt=newButt;
- //FOR NIGHT LIGHT:
- lightLevel= analogRead (pinPhoto);
- brightness=map (lightLevel,minimum, maximum,255,0);
- brightness= constrain (brightness,0,255);
- //constrain--> keeps variable within set of values
- if (lightLevel>minimum)
- //&& lightLevel< (maximum-minimum)/3)
- {
- angle = 180;
- miServito.write (angle);
- delay (100);
- angle = 0;
- miServito.write (angle);
- delay (50);
- angle = 180;
- miServito.write (angle);
- delay (100);
- angle = 0;
- miServito.write (angle);
- delay (50);
- lcd.begin (16,2);
- lcd.print ("Hello");
- lcd.setCursor (12,0);
- lcd.print ("...");
- delay (1000);
- lcd.clear ();
- lcd.setCursor (4,1);
- lcd.print ("Human");
- delay (2000);
- lcd.clear ();
- dt = clock.getDateTime();
- photoVal=analogRead (photoPin);
- lcd.print ("The time is:");
- lcd.setCursor (6,1);
- if(dt.hour<10)
- {
- lcd.print (0);
- lcd.print (dt.hour);
- if (dt.minute<10)
- {
- lcd.print (":");
- lcd.print (0);
- lcd.print (dt.minute);
- }
- else
- {
- lcd.print (":");
- lcd.print (dt.minute);
- }
- }
- else
- {
- if (dt.hour>12)
- {
- lcd.print (dt.hour-12);
- if (dt.minute<10)
- {
- lcd.print (":");
- lcd.print (0);
- lcd.print (dt.minute);
- }
- else
- {
- lcd.print (":");
- lcd.print (dt.minute);
- }
- }
- else
- {
- lcd.print (dt.hour);
- }
- }
- delay (1000);
- lcd.clear ();
- digitalWrite (pinLED1, HIGH);
- digitalWrite (pinLED2, HIGH);
- delay (700);
- }
- else
- {
- angle = 0;
- miServito.write (angle);
- digitalWrite (pinLED1, LOW);
- digitalWrite (pinLED2, LOW);
- delay (200);
- }
- }
- boolean debounce(boolean last)
- {
- boolean current = digitalRead(pinButt);
- if (last != current);
- {
- delay(5);
- current = digitalRead(pinButt);
- }
- return current;
- }
- void calibrate()
- {
- maximum= -5000;
- minimum=5000;
- //^use to know when calibrate starts and ends
- timeStart= millis();
- while (millis()-timeStart<5000)
- {
- lightLevel=analogRead (pinPhoto);
- if (lightLevel>maximum)
- {
- maximum=lightLevel;
- }
- else if (lightLevel<minimum)
- {
- minimum=lightLevel;
- }
- }
- Serial.println (minimum);
- // lcd.print (minimum);
- Serial.println (maximum);
- // lcd.print (maximum);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement