Djstorm100
Active Member
it really depends on the application..
here this can explain it better than I can:
How do you determine a resistor's wattage
lol
Thanks! lol
it really depends on the application..
here this can explain it better than I can:
How do you determine a resistor's wattage
lol
//zoomkat 11-22-12 simple delimited ',' string parse
//from serial port input (via serial monitor)
//and print result out serial port
//multi servos added
String readString;
#include <Servo.h>
Servo myservoa, myservob, myservoc, myservod; // create servo object to control a servo
void setup() {
Serial.begin(9600);
//myservoa.writeMicroseconds(1500); //set initial servo position if desired
myservoa.attach(6); //the pin for the servoa control
myservob.attach(7); //the pin for the servob control
myservoc.attach(8); //the pin for the servoc control
myservod.attach(9); //the pin for the servod control
Serial.println("multi-servo-delimit-test-dual-input-11-22-12"); // so I can keep track of what is loaded
}
void loop() {
//expect single strings like 700a, or 1500c, or 2000d,
//or like 30c, or 90a, or 180d,
//or combined like 30c,180b,70a,120d,
if (Serial.available()) {
char c = Serial.read(); //gets one byte from serial buffer
if (c == ',') {
if (readString.length() >1) {
Serial.println(readString); //prints string to serial port out
int n = readString.toInt(); //convert readString into a number
// auto select appropriate value, copied from someone elses code.
if(n >= 500)
{
Serial.print("writing Microseconds: ");
Serial.println(n);
if(readString.indexOf('a') >0) myservoa.writeMicroseconds(n);
if(readString.indexOf('b') >0) myservob.writeMicroseconds(n);
if(readString.indexOf('c') >0) myservoc.writeMicroseconds(n);
if(readString.indexOf('d') >0) myservod.writeMicroseconds(n);
}
else
{
Serial.print("writing Angle: ");
Serial.println(n);
if(readString.indexOf('a') >0) myservoa.write(n);
if(readString.indexOf('b') >0) myservob.write(n);
if(readString.indexOf('c') >0) myservoc.write(n);
if(readString.indexOf('d') >0) myservod.write(n);
}
readString=""; //clears variable for new input
}
}
else {
readString += c; //makes the string readString
}
}
}
@DevilFlash & @Djstorm100
this has been posted many (many) times.. did you miss it? (ie: grounds & 180 movement)
1.) connect grounds
2.) stop making FULL 180 sweeps/turns.. you WONT get a full 180 degrees!!!
3.) If you wanted more movement you should have bought a modified 360 servo.. or mod'd one yourself.
you could have saved yourself a TON of trouble (and time) by reading!,...following the advice given here... (and been up and running faster)
glad you got it all working..
@matthewr7935 ?? it would just be the same thing.. add another servo.
also @DevilFlash
you'll have to change the code from Zoomkat
that only works from a serial input... (which is find for testing from the serial monitor)..
however you'll need to convert the code to use a button...etc..etc.. blink the leds..etc..etc..
glad you guys got it all working!
2.) stop making FULL 180 sweeps/turns.. you WONT get a full 180 degrees!!!
you could have saved yourself a TON of trouble (and time) by reading!,...following the advice given here... (and been up and running faster)
@DevilFlash & @Djstorm100
this has been posted many (many) times.. did you miss it? (ie: grounds & 180 movement)
1.) connect grounds
2.) stop making FULL 180 sweeps/turns.. you WONT get a full 180 degrees!!!
3.) If you wanted more movement you should have bought a modified 360 servo.. or mod'd one yourself.
you could have saved yourself a TON of trouble (and time) by reading!,...following the advice given here... (and been up and running faster)
glad you got it all working..
@matthewr7935 ?? it would just be the same thing.. add another servo.
also @DevilFlash
you'll have to change the code from Zoomkat
that only works from a serial input... (which is find for testing from the serial monitor)..
however you'll need to convert the code to use a button...etc..etc.. blink the leds..etc..etc..
glad you guys got it all working!
//Iron Man - sequence code:
//Made by: 7sinnz
//Mod by: memebr
//The RPF thread:
//http://www.therpf.com/f24/iron-man-motorised-faceplate-electronics-tutorial-170853/
//-----------------------------------------------------------------------------------
#include <Servo.h>
Servo myservo; // Cria um objeto de controle para o servo 1
Servo myservo1; // Cria um objeto de controle pro servo 2
const int pinobotao = 2; // Designa o pino 2 ao botão
const int pinoled = 5; // Designa o pino 5 ao led
int estadobotao = 0; // Estado atual do botão
int ultimoEstadobotao = 0; // estado anterior do botão
int estadoled = 0; // Lembra o atado atual do led
int pos = 0; // Variável para armazenar a posiçao do braço do servo
int pos1 = 180; //Variável para armazenar a posiçao do braço do servo
void setup()
{
myservo.attach(9); // Designa o pino 9 para controle do servo
myservo1.attach(10); // Designa o pino 10 para controle do servo
pinMode(pinobotao, INPUT); // Inicializa o botão como entrada
pinMode(pinoled, OUTPUT); // Inicializa o led como saida
}
void loop()
{
estadobotao = digitalRead(pinobotao); // Faz a leitura do pino do botão
if (estadobotao != ultimoEstadobotao) // Compara o atual estado do botão com o estado anterior
{
if (estadobotao == 1) // se o estado do botão for alto
{
if(estadoled == 1) // e se o estado do led for alto
{
delay(30); estadoled = 0; //atrasa 30ms e inicia a sequencia
for(pos = 0; pos <= 180; pos += 10) // faz o servo1 ir de 0º a 180º em passos de 10º
{
myservo.write(pos); // armazena o valor de pos na variavel do servo1
}
for(pos1 = 180; pos1 >= 0; pos1 -= 10) // faz o servo2 ir de 180º a 0º em passos de -10º
{
myservo1.write(pos1); // armazena o valor de pos1 na variavel do servo2
}
delay(15); // Atrasa em 15ms depois que o servo atingir a posição final
}
else
{
delay(30); //atraso de 30ms
estadoled = 1; // manda um valor alto para a variavel estadoled
for(pos = 180; pos >= 0; pos -= 10) // faz o servo1 ir de 180º a 0º em passos de 10º
{
myservo.write(pos); // armazena o valor de pos na variavel do servo1
}
for(pos1 = 0; pos1 <= 180; pos1 += 10) // faz o servo2 ir de 0º a 180º em passos de 10º
{
myservo1.write(pos1); // armazena o valor de pos1 na variavel do servo2
}
delay(1000); //Atraso de 1000ms
}
}
ultimoEstadobotao = estadobotao; // Lembra o atual estado do botão e Liga o led se estadoled =1 ou desliga se estadoled = 0
}
digitalWrite(pinoled, estadoled); //atribui o valor de pinoled ao estadoled
myservo.write(pos); // vai de 0º a 180º
myservo1.write(pos1); // vai de 180º a 0º
delay(20); // Atraso de 20ms
}
//Iron Man - Flicker Eyes sequence code:
//Made by: 7sinnz, guitarakizta
//mod by: memebr
//The RPF thread:
//http://www.therpf.com/f24/iron-man-motorised-faceplate-electronics-tutorial-170853/
//-----------------------------------------------------------------------------------
#include <Servo.h> //Biblioteca de servos
Servo myservo; // Cria um objeto de servo
Servo myservo1; // Cria um objeto de servo
int val; // variavel para ler o estado do pino
int val2; // variavel para ler o novo estado do pino
int estadobotao; // variavel de estado do botão
int servostatus = 0; // variavel de estado do servo
int botao = 2; // Atraca o botão ao pino 2
int led = 5; // atraca o led ao pino 5
void setup()
{
myservo.attach(9); //servo 1
myservo1.attach(10); //servo 2
pinMode(botao, INPUT); // Coloca o pino do botão como entrada
pinMode(led, OUTPUT); // Coloca o pino do led como saida
estadobotao = digitalRead(botao); // faz a leitura do estado do botão
myservo.write(0); // seta o servo 1 para 0º
myservo1.write(170); // seta o servo 2 para 170º
}
void loop()
{
val = digitalRead(botao); // faz a leitura da entrada e armazena na variavel
delay(10); // atraso de 10ms
val2 = digitalRead(botao); // refaz a leitura para verificar se não há erros
if (val == val2)
{ // certifica que temos uma leitura certa
if (val != estadobotao)
{ // compara o estado do botão
if (val == LOW)
{ // se a variavel do botão for baixa
if (servostatus == 0) { //se o servo1 estiver em 0º e o servo2 em 170º
servostatus = 1; // atribui um valor alto para a variavel de servos e manda o servo1 para 170º e servo 2 para 0º e inicia a sequencia de fade
//efeito de fade
myservo.write(0);
myservo1.write(170);
delay(1200);
digitalWrite(led, HIGH);
delay(200);
digitalWrite(led, LOW);
delay(25);
digitalWrite(led, HIGH);
delay(200);
digitalWrite(led, LOW);
delay(25);
for(int fade = 0 ; fade <= 255; fade +=10)
{
// defina o valor que quiser (de 0 ate 255) e a velocidade do efeito mudando o valor 10 para qualquer outro valor que quiser:
analogWrite(led, fade); // atribui a variavel fade com o mesmo valor da variavel led
delay(30); // atraso de 30ms
}
}
else
{
servostatus = 0; // seta o estatus do servo para 0º
digitalWrite(led, LOW); //desliga os leds quando o servo chega a 0º
delay(15); // atraso de 15ms
myservo.write(170); // seta o servo 1 para 170º
myservo1.write(0); // seta o servo 2 para 0º
}
}
}
estadobotao = val; // salva o novo estado do botao na variavel
}
}