gabbyshimoni icon

sampleProject1

gabbyshimoni | PRO | 03/04/20 07:31:09 AM UTC | 0 ⭐ | 556 👁️ | Never ⏰ | []
C++ |

1.52 KB

|

None

|

0 👍

/

0 👎

#define distancePot A0
#define lightPot A1
#define durationPot A2
#define ldrPin A3
#define ledPin 12
#define TRIG 7
#define ECHO 6
int dPotVal, lPotVal, tPotVal, ldrVal;
 
void setup() {
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
  pinMode(TRIG, OUTPUT);
  pinMode(ECHO, INPUT);
  // שורות ההגדרה הבאות לא הכרחיות מכיוון שמדובר בחיבורים אנאלוגיים
  pinMode(distancePot, INPUT);
  pinMode(lightPot, INPUT);
  pinMode(durationPot, INPUT);
  pinMode(ldrPin, INPUT);
 
  digitalWrite(ledPin, LOW);
}
 
void loop() {
  //קבלת מידע
  dPotVal = analogRead(distancePot);
  lPotVal = analogRead(lightPot);
  tPotVal = analogRead(durationPot);
  ldrVal = analogRead(ldrPin);
 
  // קריאת מרחק מחיישן אולטראסוני
  digitalWrite(TRIG, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG, LOW);
 
  long duration = pulseIn(ECHO, HIGH);
  int distance  = duration / 58.1;
 
  // מיפוי ערכי הפוטנציומטרים לערכים רךוונטים
  dPotVal = map(dPotVal, 0, 1023, 100, 300); // מיפוי לתחום ערכי מרחק רלוונטי להפעלה
  tPotVal = map(tPotVal, 0, 1023, 0, 60); // מיפוי למשך הפעלת נורה בשניות
 
  if ((distance < dPotVal) && (ldrVal < lPotVal)) { // מרחק קטן מהרצוי וחשוך בחוץ
    digitalWrite(ledPin, HIGH);
    delay(tPotVal * 1000);
    digitalWrite(ledPin, LOW);
  }
  delay(500);
}

Comments