Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Пример детектирования яблока фоторезистором
- *
- */
- 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();
- };
Advertisement
Add Comment
Please, Sign In to add comment