ALBERTO TOMMASO BERTOLA
Published © CC BY-NC-SA

Arduino Autotruck

Arduino Autotruck is a project born to automate and improve the use of a Lego Technic’s lorry through some features.

BeginnerShowcase (no instructions)1.5 hours689
Arduino Autotruck

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
×1
Arduino MotorShield Rev3
Arduino MotorShield Rev3
×1
Ultrasonic Sensor - HC-SR04 (Generic)
Ultrasonic Sensor - HC-SR04 (Generic)
×1
Buzzer
Buzzer
×1
Photo resistor
Photo resistor
×1
Resistor 221 ohm
Resistor 221 ohm
×1
LED (generic)
LED (generic)
×4
Servos (Tower Pro MG996R)
×1
DC motor (generic)
×1
Modulo Joystick
Modulo Joystick
×1
9V battery (generic)
9V battery (generic)
×2

Story

Read more

Schematics

Arduino Autotruck

Code

Arduino_Autotruck.ino

Arduino
#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);
}

Credits

ALBERTO TOMMASO BERTOLA
0 projects • 2 followers

Comments