#include <Servo.h>
int Xin = A0;
Servo myservo;
int Yin = A1;
int luminosita;
int ledPin = 11;
int triggerPort = 3;
int echoPort = 4;
int cicalino = 5;
unsigned long time;
unsigned long lampeggio_time;
unsigned long pausa_time;
void setup() {
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(10,OUTPUT);
pinMode( triggerPort, OUTPUT );
pinMode( echoPort, INPUT );
pinMode( cicalino, OUTPUT );
Serial.begin( 9600 );
Serial.println( "Sensore ultrasuoni: ");
myservo.attach(9);
myservo.write(0);
}
void loop() {
analogRead(Yin);
if (Yin <= 512) {
digitalWrite(8, HIGH);
digitalWrite(7, LOW);
analogWrite(10, 0);
}
else if (Yin > 512) {
digitalWrite(8, HIGH);
digitalWrite(7, LOW);
analogWrite(10, 255);
}
int xVal, buttonVal;
xVal = analogRead (Xin);
xVal = map(xVal, 0, 1023, 0, 179);
myservo.write(xVal);
delay(15);
digitalWrite( triggerPort, LOW );
digitalWrite( triggerPort, HIGH );
delayMicroseconds( 10 );
digitalWrite( triggerPort, LOW );
long duration = pulseIn( echoPort, HIGH );
long r = 0.034 * duration / 2;
Serial.print( "durata: " );
Serial.print( duration );
Serial.print( " , " );
Serial.print( "distanza: " );
if ( duration > 38000 ) Serial.println( "fuori portata");
else {
Serial.print( r );
Serial.println( "cm" );
}
if ( r > 2 && r <= 10) {
delay(r * 10);
digitalWrite(cicalino, HIGH);
delay(r * 10);
}
if ( r <= 2) {
digitalWrite(cicalino, HIGH);
delay(1000);
}
digitalWrite(cicalino, LOW);
delay(10);
luminosita = analogRead(A2);
luminosita = luminosita / 4;
analogWrite(ledPin, luminosita);
delay(10);
}
Comments