Go Down

Topic: Iron man helmet faceplate and LED (Read 3877 times) previous topic - next topic

Hey guys i'm new to the Arduino and i have a Arduino Uno and i don't know how to write the code.
Can some pro please write me a simple code which turn 180 to open up the faceplate and LED turn off with a press of a button, then if press again it will turn back 180 counter clock wide to close the faceplate then turn on the LED.

johnwasser

#1
Jan 12, 2013, 12:28 am Last Edit: Jan 12, 2013, 12:32 am by johnwasser Reason: 1
Code: [Select]

const int servoPin = 2;
const int buttonPin = 3;
const int LEDPin = 4;

#include <Servo.h>

Servo visorServo;

void setup() {
  visorServo.write(0);  // Initial position
  visorServo.attach(servoPin);

  pinMode(buttonPin, INPUT_PULLUP);  // Connect button between pin and GROUND. LOW when pushed.

  pinMode(LEDPin, OUTPUT);
  digitalWrite(LEDPin, LOW);  // LED off
}

void loop() {
  static unsigned long lastPushedTime = 0;
  static boolean visorClosed = true;
  static boolean lastButtonState = HIGH;
 
  boolean newButtonState = digitalRead(buttonPin);

  // If the button is down and it has been a while since it was last down...
  if (newButtonState  == LOW && lastButtonState == HIGH && millis() - lastPushedTime > 100) {
    lastPushedTime = millis();
    if (visorClosed) {
      visorServo.write(180); // Open visor
      visorClosed = false;
      digitalWrite(LEDPin, HIGH); // Turn on light
    }
    else {  // Viso is open
      visorServo.write(0); // Close visor
      visorClosed = true;
      digitalWrite(LEDPin, LOW); // Turn off light
    }
  }
 
  lastButtonState = newButtonState;
}

Send Bitcoin tips to: 1L3CTDoTgrXNA5WyF77uWqt4gUdye9mezN
Send Litecoin tips to : LVtpaq6JgJAZwvnVq3ftVeHafWkcpmuR1e

PeterH

I only provide help via the forum - please do not contact me for private consultancy.

johnwasser

Send Bitcoin tips to: 1L3CTDoTgrXNA5WyF77uWqt4gUdye9mezN
Send Litecoin tips to : LVtpaq6JgJAZwvnVq3ftVeHafWkcpmuR1e

tcengs

thread back from the dead, i am starting a similar project and the code provided works wonders , however i am trying to include a 2nd servo that moves in the opposite position as the 1st servo. i am new an dont know where to start. didnt mean to high jack 

johnwasser

It's not hard to add a second servo:
Code: [Select]

const int servo1Pin = 2;
const int buttonPin = 3;
const int LEDPin = 4;
const int servo2Pin = 5;

#include <Servo.h>

Servo visorServo1;
Servo visorServo2;

void setup() {
 visorServo1.write(0);  // Initial position
 visorServo1.attach(servo1Pin);

 visorServo2.write(180); // initial position
 visorServo2.attach(servo2Pin);

 pinMode(buttonPin, INPUT_PULLUP);  // Connect button between pin and GROUND. LOW when pushed.

 pinMode(LEDPin, OUTPUT);
 digitalWrite(LEDPin, LOW);  // LED off
}

void loop() {
 static unsigned long lastPushedTime = 0;
 static boolean visorClosed = true;
 static boolean lastButtonState = HIGH;
 
 boolean newButtonState = digitalRead(buttonPin);

 // If the button is down and it has been a while since it was last down...
 if (newButtonState  == LOW && lastButtonState == HIGH && millis() - lastPushedTime > 100) {
   lastPushedTime = millis();
   if (visorClosed) {
     visorServo1.write(180); // Open visor
     visorServo2.write(0);
     visorClosed = false;
     digitalWrite(LEDPin, HIGH); // Turn on light
   }
   else {  // Viso is open
     visorServo1.write(0); // Close visor
     visorServo2.write(180);
     visorClosed = true;
     digitalWrite(LEDPin, LOW); // Turn off light
   }
 }
 
 lastButtonState = newButtonState;
}
Send Bitcoin tips to: 1L3CTDoTgrXNA5WyF77uWqt4gUdye9mezN
Send Litecoin tips to : LVtpaq6JgJAZwvnVq3ftVeHafWkcpmuR1e

tcengs

its been 15 years since I've written code. Thanks for the quick reply

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy