const byte servo =9 ;
const byte middle = 90; // Centratura servo
const int spausa = 30; // Pausa movimenti servo
+const byte left = 170;
+const byte right = 10;
void setup()
{
myservo.attach(servo); // attaches the servo on pin 9 to the servo object
- myservo.write(middle); // tell servo to go to position in variable 'pos'
- delay(2000);
+
+ // Centratura iniziale
+ myservo.write(middle); // tell servo to go to position in variable 'pos'
+ delay(2000);
}
delay(1000);
// Turn SX
- turnSX();
- delay(1000);
-
- turnMiddle();
- delay(1000);
+ turnSX();
+ delay(1000);
+
+ turnMiddle();
+ delay(1000);
}
// Functions
void turnDX() {
// TurnDX
- myservo.write(170);
+ myservo.write(right);
delay(spausa);
}
void turnSX() {
// TurnSX
- myservo.write(10);
+ myservo.write(left);
delay(spausa);
}
--- /dev/null
+/* Ultrasonic rilevatore distanza
+
+Rilevatore distanza minore di 5cm.
+funzione
+
+HC-SR04 Ping distance sensor
+VCC to arduino 5v - GND to arduino GND
+
+ */
+# define DEBUG
+
+// Ultrasuoni
+const byte trig = 11;
+const byte echo = 12;
+const byte led = 13;
+long duration, distance;
+boolean allarm = 0;
+
+void setup() {
+ pinMode(trig, OUTPUT);
+ pinMode(echo, INPUT);
+ pinMode(led, OUTPUT);
+
+
+ //Debug
+ Serial.begin (9600);
+}
+
+void loop() {
+if (check()) {
+ digitalWrite(led,HIGH);
+} else {
+ digitalWrite(led,LOW);
+}
+
+#ifdef DEBUG
+Serial.begin(9600);
+#endif
+
+}
+
+boolean check() {
+ digitalWrite(trig, LOW); // Prepare for ping
+ delayMicroseconds(2); //
+ digitalWrite(trig, HIGH); // Send a ping
+ delayMicroseconds(10); //
+ digitalWrite(trig, LOW); // Set down ping
+ duration = pulseIn(echo, HIGH);
+ distance = (duration/2) / 29.1; // Speed is ~300m/s,
+ // so it takes ~29.1 milliseconds for a cm.
+ // Distance is half of (out + back)
+ if (distance < 5) { // This is where the LED On/Off happens
+ return 1;
+ }
+ else {
+ return 0;
+ }
+}
--- /dev/null
+/* Ultrasonic rilevatore distanza
+
+Rilevatore distanza minore di 5cm.
+
+HC-SR04 Ping distance sensor
+VCC to arduino 5v - GND to arduino GND
+
+
+ */
+
+// Ultrasuoni
+const byte trig = 11;
+const byte echo = 12;
+const byte led = 13;
+long duration, distance;
+
+void setup() {
+ pinMode(trig, OUTPUT);
+ pinMode(echo, INPUT);
+ pinMode(led, OUTPUT);
+
+
+ //Debug
+ Serial.begin (9600);
+}
+
+void loop() {
+ digitalWrite(trig, LOW); // Prepare for ping
+ delayMicroseconds(2); //
+ digitalWrite(trig, HIGH); // Send a ping
+ delayMicroseconds(10); //
+ digitalWrite(trig, LOW); // Set down ping
+ duration = pulseIn(echo, HIGH);
+ distance = (duration/2) / 29.1; // Speed is ~300m/s,
+ // so it takes ~29.1 milliseconds for a cm.
+ // Distance is half of (out + back)
+ if (distance < 5) { // This is where the LED On/Off happens
+ digitalWrite(led,HIGH); // When the Red condition is met, the Green LED should turn off
+ }
+ else {
+ digitalWrite(led,LOW);
+ }
+ delay(200);
+ Serial.println(distance);
+}
+