Arduino Forum

Community => Gigs and Collaborations => Topic started by: digitalfa on Jan 12, 2013, 12:07 am

Title: Iron man helmet faceplate and LED
Post by: digitalfa on Jan 12, 2013, 12:07 am
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.
Title: Re: Iron man helmet faceplate and LED
Post by: johnwasser on Jan 12, 2013, 12:28 am
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;
}

Title: Re: Iron man helmet faceplate and LED
Post by: PeterH on Jan 12, 2013, 12:29 am
Turn *what* 180 degrees?
Title: Re: Iron man helmet faceplate and LED
Post by: johnwasser on Jan 12, 2013, 12:33 am

Turn *what* 180 degrees?

I'm guessing a servo.
Title: Re: Iron man helmet faceplate and LED
Post by: tcengs on Feb 08, 2014, 09:45 pm
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 
Title: Re: Iron man helmet faceplate and LED
Post by: johnwasser on Feb 09, 2014, 02:19 am
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;
}
Title: Re: Iron man helmet faceplate and LED
Post by: tcengs on Feb 09, 2014, 02:40 am
its been 15 years since I've written code. Thanks for the quick reply
Title: Re: Iron man helmet faceplate and LED
Post by: arielcosco on May 06, 2019, 01:23 am
como hago para que el servo suba despacio en la apertura?