Forum » Elektrotehnika in elektronika » Pomoc, program Fritzing
Pomoc, program Fritzing
Han_Neu ::
Lep pozdrav.
Dolgo je ze tega kar sem obiskoval racunalnisko solo. Vendar sem se spet srecal z programom Fritzing in ker sem 90% stvari pozabil ( delam namrec v drugacnih vodah ) se obracam na Vas dragi elektrotehniki. Imam problemcic kjer moram zvezat 3 servo motorje in 6 gumbov. Torej vsak servo ma 2 gumba, eden za levo eden za desno. Problem imam pri kodiranju namrec servo motorji se mi sucejo nenadzorrovano v levo. Lepo prosim za pomoc je malo nujna zadeva. Prilepim kodo in sliko.
http://i58.tinypic.com/2ce6j51.png[/IMG] Fritsing]
Koda:
#include Servo.h (servo.h je v < >)
Servo servo;
Servo servo2;
Servo servo3;
const int buttonPin1 = 2;
const int buttonPin2 = 3;
const int buttonPin3 = 4;
const int buttonPin4 = 5;
const int buttonPin5 = 6;
const int buttonPin6 = 7;
int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;
int buttonState4 = 0;
int buttonState5 = 0;
int buttonState6 = 0;
void setup() {
servo.attach(9);
servo2.attach(10);
servo3.attach(11);
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(buttonPin3, INPUT);
pinMode(buttonPin4, INPUT);
pinMode(buttonPin5, INPUT);
pinMode(buttonPin6, INPUT);
}
void loop() {
buttonState1 = digitalRead(buttonPin1);
buttonState2 = digitalRead(buttonPin2);
if (buttonState1 == HIGH)
{
servo.writeMicroseconds(1000);
}
else if (buttonState2 == HIGH)
{
servo.writeMicroseconds(2000);
}
buttonState3 = digitalRead(buttonPin3);
buttonState4 = digitalRead(buttonPin4);
if (buttonState3 == HIGH)
{
servo2.writeMicroseconds(1000);
}
else if (buttonState4 == HIGH)
{
servo2.writeMicroseconds(2000);
}
buttonState5 = digitalRead(buttonPin5);
buttonState6 = digitalRead(buttonPin6);
if (buttonState5 == HIGH)
{
servo3.writeMicroseconds(1000);
}
else if (buttonState6 == HIGH)
{
servo3.writeMicroseconds(2000);
}
}
Hvala vnaprej in srecno :)
Dolgo je ze tega kar sem obiskoval racunalnisko solo. Vendar sem se spet srecal z programom Fritzing in ker sem 90% stvari pozabil ( delam namrec v drugacnih vodah ) se obracam na Vas dragi elektrotehniki. Imam problemcic kjer moram zvezat 3 servo motorje in 6 gumbov. Torej vsak servo ma 2 gumba, eden za levo eden za desno. Problem imam pri kodiranju namrec servo motorji se mi sucejo nenadzorrovano v levo. Lepo prosim za pomoc je malo nujna zadeva. Prilepim kodo in sliko.
http://i58.tinypic.com/2ce6j51.png[/IMG] Fritsing]
Koda:
#include Servo.h (servo.h je v < >)
Servo servo;
Servo servo2;
Servo servo3;
const int buttonPin1 = 2;
const int buttonPin2 = 3;
const int buttonPin3 = 4;
const int buttonPin4 = 5;
const int buttonPin5 = 6;
const int buttonPin6 = 7;
int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;
int buttonState4 = 0;
int buttonState5 = 0;
int buttonState6 = 0;
void setup() {
servo.attach(9);
servo2.attach(10);
servo3.attach(11);
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(buttonPin3, INPUT);
pinMode(buttonPin4, INPUT);
pinMode(buttonPin5, INPUT);
pinMode(buttonPin6, INPUT);
}
void loop() {
buttonState1 = digitalRead(buttonPin1);
buttonState2 = digitalRead(buttonPin2);
if (buttonState1 == HIGH)
{
servo.writeMicroseconds(1000);
}
else if (buttonState2 == HIGH)
{
servo.writeMicroseconds(2000);
}
buttonState3 = digitalRead(buttonPin3);
buttonState4 = digitalRead(buttonPin4);
if (buttonState3 == HIGH)
{
servo2.writeMicroseconds(1000);
}
else if (buttonState4 == HIGH)
{
servo2.writeMicroseconds(2000);
}
buttonState5 = digitalRead(buttonPin5);
buttonState6 = digitalRead(buttonPin6);
if (buttonState5 == HIGH)
{
servo3.writeMicroseconds(1000);
}
else if (buttonState6 == HIGH)
{
servo3.writeMicroseconds(2000);
}
}
Hvala vnaprej in srecno :)
- spremenil: Han_Neu ()
Crossfire ::
Predlagam, da najprej osvojiš kontrolo nad enim servotom in potem sistematično dodajaš druga dva.
Pomagaj si s tem:
https://blasphemousbits.wordpress.com/2...
http://www.instructables.com/id/Servo-C...
Pomagaj si s tem:
https://blasphemousbits.wordpress.com/2...
http://www.instructables.com/id/Servo-C...
Zgodovina sprememb…
- spremenilo: Crossfire ()
Han_Neu ::
Hvala. Super.
Sem pod drugim linkom zvezal in dodal kodo in je delal.
Zdej pa sam naj me en usmeri kak v kodi dodam da iz vsakega gumba posebi bere torej servo1 levo desno servo 2 levo desno itd
Sem pod drugim linkom zvezal in dodal kodo in je delal.
Zdej pa sam naj me en usmeri kak v kodi dodam da iz vsakega gumba posebi bere torej servo1 levo desno servo 2 levo desno itd
Han_Neu ::
okej uspelo zvezati. Sam en problemcek se mam. in namrec s kodo ki sem jo napisal s pomocjo Crossfira ( hvala za linke ).
stvar naceloma dela vendar se mi ob pritisku katerega koli gumba za levo ali desno obrnjo vsi servoti. Ce kdo ve kje sem naredil napako lepo prosim povejte.
Hvala.
const int buttonPin = 2;
const int buttonPin3 = 6;
const int buttonPin4 = 7;
const int buttonPin2 = 4;
const int buttonPin5 = 3;
const int buttonPin6 = 5;
int buttonState = 0;
int buttonState3 = 0;
int buttonState4 = 0;
int buttonState2 = 0;
int buttonState5 = 0;
int buttonState6 = 0;
Servo servoA, servoB, servoC;
int position = 0;
void setup() {
servoA.attach(9);
servoB.attach(10);
servoC.attach(11);
pinMode(buttonPin, INPUT);
pinMode(buttonPin3, INPUT);
pinMode(buttonPin4, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(buttonPin5, INPUT);
pinMode(buttonPin6, INPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
buttonState2 = digitalRead(buttonPin2);
if(buttonState ==HIGH && position < 180){
servoA.write(position++);
delay(5);
}
if(buttonState2 == HIGH && position > 3){
servoA.write(position--);
delay(5);
}
buttonState3 = digitalRead(buttonPin3);
buttonState4 = digitalRead(buttonPin4);
if(buttonState3 ==HIGH && position < 180){
servoB.write(position++);
delay(5);
}
if(buttonState4 == HIGH && position > 3){
servoB.write(position--);
delay(5);
}
buttonState5 = digitalRead(buttonPin5);
buttonState6 = digitalRead(buttonPin6);
if(buttonState5 ==HIGH && position < 180){
servoC.write(position++);
delay(5);
}
if(buttonState6 == HIGH && position > 3){
servoC.write(position--);
delay(5);
}
}
stvar naceloma dela vendar se mi ob pritisku katerega koli gumba za levo ali desno obrnjo vsi servoti. Ce kdo ve kje sem naredil napako lepo prosim povejte.
Hvala.
const int buttonPin = 2;
const int buttonPin3 = 6;
const int buttonPin4 = 7;
const int buttonPin2 = 4;
const int buttonPin5 = 3;
const int buttonPin6 = 5;
int buttonState = 0;
int buttonState3 = 0;
int buttonState4 = 0;
int buttonState2 = 0;
int buttonState5 = 0;
int buttonState6 = 0;
Servo servoA, servoB, servoC;
int position = 0;
void setup() {
servoA.attach(9);
servoB.attach(10);
servoC.attach(11);
pinMode(buttonPin, INPUT);
pinMode(buttonPin3, INPUT);
pinMode(buttonPin4, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(buttonPin5, INPUT);
pinMode(buttonPin6, INPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
buttonState2 = digitalRead(buttonPin2);
if(buttonState ==HIGH && position < 180){
servoA.write(position++);
delay(5);
}
if(buttonState2 == HIGH && position > 3){
servoA.write(position--);
delay(5);
}
buttonState3 = digitalRead(buttonPin3);
buttonState4 = digitalRead(buttonPin4);
if(buttonState3 ==HIGH && position < 180){
servoB.write(position++);
delay(5);
}
if(buttonState4 == HIGH && position > 3){
servoB.write(position--);
delay(5);
}
buttonState5 = digitalRead(buttonPin5);
buttonState6 = digitalRead(buttonPin6);
if(buttonState5 ==HIGH && position < 180){
servoC.write(position++);
delay(5);
}
if(buttonState6 == HIGH && position > 3){
servoC.write(position--);
delay(5);
}
}
Crossfire ::
okej uspelo zvezati. Sam en problemcek se mam. in namrec s kodo ki sem jo napisal s pomocjo Crossfira ( hvala za linke ).
stvar naceloma dela vendar se mi ob pritisku katerega koli gumba za levo ali desno obrnjo vsi servoti. Ce kdo ve kje sem naredil napako lepo prosim povejte.
Hvala.
Za vse 3 servote imaš v loopu enak position...imaš namreč 3 različne positione, torej position1 za servo 1, position2 za servo2 in position3 za servo3.
Han_Neu ::
Res je. Hvala lepa Crossfire. Resenno. Ce bos kej u celju mas pivo v dobrem :).
Se lahko zaklene. Lp.
Se lahko zaklene. Lp.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Arduino kot časovni releOddelek: Pomoč in nasveti | 1607 (1193) | davor92 |
» | Pomoč C++Oddelek: Pomoč in nasveti | 1350 (1069) | samo111 |
» | Arduino in luči (strani: 1 2 )Oddelek: Elektrotehnika in elektronika | 12068 (9694) | FX6300B |
» | Arduino "leteče luči"Oddelek: Elektrotehnika in elektronika | 2997 (1874) | zrataj4201 |
» | Arduino - krmiljenje stepper motorjevOddelek: Elektrotehnika in elektronika | 3723 (2902) | steling |