shustry icon

Apple Counter with photo resistor

shustry | PRO | 02/18/19 03:28:56 PM UTC | 0 ⭐ | 260 👁️ | Never ⏰ | []
C++ |

1.17 KB

|

None

|

0 👍

/

0 👎

/**
 * Пример детектирования яблока фоторезистором
 *
 */
int sensorPin = A0;
int ledPin = 8;
int level;
int counter = 0;
bool shadowState = false;
 
/**
 * Замер среднеквадратичного значения по аналоговой ноге
 */
int measureRMS() {
  float sum = 0.0;
  for (int i = 0; i < 5; i++) {
    sum += sq(analogRead(sensorPin));
  }
  return (int) sqrt(sum / 5);
}
 
void toggleLed(){
  digitalWrite(ledPin, !digitalRead(ledPin));
}
 
/**
 * Реакция на управление по COM
 */
void checkComReset() {
  char buf;
  if (Serial.available()) {
    buf = Serial.read();
    switch(buf){
      case 'x':
      counter = 0;
      Serial.println("Counter reset.");
      break;
    }
  }
}
 
void echoCounterToCOM(){
  Serial.println(counter);
}
 
void setShadow(bool value) {
  if (value == shadowState) {
    return;
  }
  if (!value) {
    counter++;  
  }
  toggleLed();
}
 
void setup() {
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
  level = measureRMS();
}
 
void loop() {
  setShadow(!(measureRMS() > level));
  checkComReset();
};

Comments