From 373cb5b96b232962f312cee8b7034883ad8df0ca Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Fri, 5 Sep 2025 15:52:00 -0400 Subject: [PATCH] last changes from Jul 22? Signed-off-by: Vincent Batts --- soler_chager.ino | 153 ++++++++++++++++++++++++----------------------- 1 file changed, 78 insertions(+), 75 deletions(-) diff --git a/soler_chager.ino b/soler_chager.ino index e85ee49..b8e7ff2 100644 --- a/soler_chager.ino +++ b/soler_chager.ino @@ -1,4 +1,4 @@ - #include +#include #include #include #include @@ -9,25 +9,35 @@ #define photoL2 A1 #define photoL3 A2 #define photoL4 A3 -#define LED 3 -#define button 2 +#define button 3 #define buzzer 6 -#define circleServoPin 9 -#define tiltServoPin 10 -#define LED 3//define the pin of LED as D10 +#define circleServoPin 10 +#define tiltServoPin 9 +#define LED 4 //define the pin of LED as D10 +#define TILT_ANGLE_FLAT 0 +#define TILT_ANGLE_MAX 170 + +#define TURN_L3 180 +#define TURN_L4 90 +#define TURN_L1 0 + +#define SERVO_STEP 5 + +byte m_speed = 10; BH1750 lightMeter; dht11 DHT; volatile int buttonState; -volatile int lightReadL1 = 0; -volatile int lightReadL2 = 0; -volatile int lightReadL3 = 0; -volatile int lightReadL4 = 0; +volatile int lightReadL1 = 0; // EAST FACING +volatile int lightReadL2 = 0; // NORTH FACING +volatile int lightReadL3 = 0; // WEST FACING +volatile int lightReadL4 = 0; // SOUTH FACING int value; -int servoPin = 9;//set the pin of the servo LiquidCrystal_I2C lcd(0x27, 16, 2); Servo circleServo; Servo tiltServo; +int tiltPos; +int circlePos; void setup() { @@ -46,8 +56,37 @@ void setup() pinMode(LED, OUTPUT); //initialize digital pin LED as an output. pinMode(button, INPUT); pinMode(buzzer, OUTPUT); - //circleServo.attach(circleServoPin); - //tiltServo.attach(tiltServoPin); + + circleServo.attach(circleServoPin); + circleServo.write(TURN_L4); + Serial.print("circle pos: "); + Serial.print(TURN_L4); + Serial.println(""); + delay(1000); + + tiltServo.attach(tiltServoPin); + tiltServo.write(0); + Serial.print("tilt pos: "); + Serial.print(TILT_ANGLE_FLAT); + Serial.println(""); + delay(1000); + + if (false) { + circleServo.write(TURN_L3); + delay(1000); + circleServo.write(TURN_L1); + delay(1000); + circleServo.write(TURN_L4); + delay(1000); + + for (tiltPos = TILT_ANGLE_FLAT; tiltPos < TILT_ANGLE_MAX; tiltPos += SERVO_STEP) { + tiltServo.write(tiltPos); + Serial.print("tilt pos: "); + Serial.print(tiltPos); + Serial.println(""); + delay(m_speed); + } + } Serial.print("done setting up!\n"); lcd.clear(); @@ -62,38 +101,35 @@ void setup() Serial.println(F("BH1750 Test begin")); } +long long count = 0; void loop() { - /* - delay(300); - for (int i = 180; i > 0; i--) { - circleServo.write(i); - tiltServo.write(i); - delay(10); - } - for (int i = 0; i < 180; i++) { - circleServo.write(i); - tiltServo.write(i); - delay(10); - } - */ + char buf[40]; + + //lcd.clear(); + //lcd.setCursor(0,0); - /* - servopulse(servoPin, 0);//rotate to 0 degree - delay(200);//delay in 1s - servopulse(servoPin, 90);//rotate to 90 degrees - delay(200); - servopulse(servoPin, 180);//rotate to 1800 degrees - delay(200); + sprintf(buf, "count: %d\n", count); + Serial.print(buf); + //lcd.printstr(buf); - if (lightReadL1 > 300){ - digitalWrite(LED, HIGH); - } - else{ - digitalWrite(LED, LOW); - } - */ + count++; +} + + +int CtoF(int temp) +{ + return temp * 1.8 + 32; +} + +int FtoC(int temp) +{ + return (temp - 32) * 0.55555; +} + +void old_loop() +{ int chk; chk = DHT.read(DHT11_PIN); switch (chk) @@ -137,47 +173,14 @@ void loop() } delay(2000); - /* - { - Serial.print("hum: "); - Serial.print(DHT.humidity); - Serial.print(", temp: "); - Serial.print(CtoF(DHT.temperature)); - Serial.print(", L1: "); - Serial.print(lightReadL1); - Serial.print(", L2: "); - Serial.print(lightReadL2); - Serial.print(", L3: "); - Serial.print(lightReadL3); - Serial.print(", L4: "); - Serial.print(lightReadL4); - Serial.print(", lx: "); - Serial.println(lux); - delay(500); - } - */ - buttonState = digitalRead(button); if(buttonState == 0) { - for(value = 0; value < 255; value +1){ - analogWrite (LED, value);//LED lights gradually light up - } - } else { + analogWrite (LED, HIGH); + } else { digitalWrite(LED, LOW); - value = 0; } } -int CtoF(int temp) -{ - return temp * 1.8 + 32; -} - -int FtoC(int temp) -{ - return (temp - 32) * 0.55555; -} - void blink() { digitalWrite(LED,HIGH); //turn the LED on (HIGH is the voltage level