Witam - trochę przerwy ale nie, prace nie ustały
Chwilowo "programista" ponownie przeistoczył się w ślusarza/ spawacza/ etc.
Rozpoczął się montaż, już taki docelowy (nie na "trytki"):
-skrócenie linki gazu,
-dorobienie dla niej krańcowego uchwytu,
-wykonanie i umocowanie solidnej, metalowej obudowy dla serwa (1000++ sposobów zastosowania zamkniętych profili),
-wzmocnienie orczyka (może i to serwo ma 13kg na cm ale ten plastikowy orczyk ni jak mnie nie przekonuje),
-trochę mi zajęło wykombinować, żeby serwo ciągnęło linkę prosto (będzie na zdjęciach).
Potem szybka przeróbka programu, żeby sczytać już tak konkretnie - ile/kiedy/czego potrzeba.
Odrazu pierwsza miła niespodzianka - jak wszystko na miejscu i solidnie umocowane, jak za linkę gazu płynnie i równo ciągnie serwo (a nie moja trzęsąca się ręka) - to i odczyty równiutkie.
Oczywiście z zastosowaniem Twojego uśrednienia:
Jak widać silnik reaguje bardzo żwawo na najmniejsze (co stopień) drgnięcie serwa. Może nawet trochę zbyt żwawo - może będę musiał zmniejszyć średnicę bębenka/orczyka, na który nawija się linka.
A może nie - pamiętać należy, że pracuje bez obciążenia. Później, gdy przyjdzie mu kręcić blisko 80-cio kilowym wałem z bijakami, jak dojdzie opór koszonej trawy - z tej wyrywności może pozostać niewiele.
Dziś już za ciemno a i wszyscy mamy dość - ale na jutro już naszykowane to:
i będzie próba generalna.
Jeśli nie ma "byków" to zostanie kosmetyka - montaż "prztyczka" w przednim panelu, jakaś estetyczna diodka jako kontrolka, mocowanie wiązki przewodów itp.
Potem...próba pod obciążeniem!
ps. to ta nie informatyczna część prac:
A w zaistnieniu takiej oto maszynerii Twoja wiedza i dobra wola pomaga:
Chwilowo "programista" ponownie przeistoczył się w ślusarza/ spawacza/ etc.
Rozpoczął się montaż, już taki docelowy (nie na "trytki"):
-skrócenie linki gazu,
-dorobienie dla niej krańcowego uchwytu,
-wykonanie i umocowanie solidnej, metalowej obudowy dla serwa (1000++ sposobów zastosowania zamkniętych profili),
-wzmocnienie orczyka (może i to serwo ma 13kg na cm ale ten plastikowy orczyk ni jak mnie nie przekonuje),
-trochę mi zajęło wykombinować, żeby serwo ciągnęło linkę prosto (będzie na zdjęciach).
Potem szybka przeróbka programu, żeby sczytać już tak konkretnie - ile/kiedy/czego potrzeba.
Odrazu pierwsza miła niespodzianka - jak wszystko na miejscu i solidnie umocowane, jak za linkę gazu płynnie i równo ciągnie serwo (a nie moja trzęsąca się ręka) - to i odczyty równiutkie.
Oczywiście z zastosowaniem Twojego uśrednienia:
Kod:
#include <Servo.h>
#define hallPin 2
Servo serwo;
volatile byte pozycja = 0;
void setup()
{
serwo.attach(11);
pinMode(7, INPUT_PULLUP);
pinMode(hallPin, INPUT_PULLUP);
Serial.begin(9600);
serwo.write(pozycja);
}
void loop()
{
byte licznik = 0;
unsigned long srednia = 0;
unsigned int odczyt;
while (licznik < 10)
{
odczyt = pulseIn(hallPin, LOW);
if ((odczyt > 1000)&&(odczyt < 10000))
{
srednia += odczyt;
licznik++;
}
}
srednia /= 10;
if (digitalRead(7) == HIGH)
{
Serial.print("regulator OFF");
Serial.print("\ hall =\t");
Serial.println(srednia);
delay(250);
}
if (digitalRead(7) == LOW && pozycja <= 120)
{
pozycja ++;
serwo.write(pozycja);
Serial.print("regulator ON");
Serial.print("\ hall =\t");
Serial.print(srednia);
Serial.print("\ serwo =\t");
Serial.println(pozycja);
delay(1000);
}
}
odczyt:
lator OFF hall = 8620
regulator OFF hall = 8575
regulator OFF hall = 8551 -------------------//~ 800rpm = obroty biegu jałowego
regulator OFF hall = 8602
regulator ON hall = 8602 serwo = 1
regulator ON hall = 8599 serwo = 2
regulator ON hall = 8580 serwo = 3
regulator ON hall = 8697 serwo = 4
regulator ON hall = 8477 serwo = 5
regulator ON hall = 8782 serwo = 6
regulator ON hall = 8661 serwo = 7
regulator ON hall = 8639 serwo = 8
regulator ON hall = 5780 serwo = 9
regulator ON hall = 3934 serwo = 10
regulator ON hall = 3487 serwo = 11
regulator ON hall = 3450 serwo = 12
regulator ON hall = 3322 serwo = 13
regulator ON hall = 3280 serwo = 14------//Optymalne obroty 2500rpm = tyle powinien utrzymywać podczs pracy
regulator OFF hall = 3202
regulator OFF hall = 2784
regulator OFF hall = 2692
regulator OFF hall = 2707
regulator ON hall = 2707 serwo = 15
regulator ON hall = 2746 serwo = 16
regulator ON hall = 2618 serwo = 17
regulator ON hall = 2562 serwo = 18------// 3000rpm = max, więcej byłoby niebezpieczne dla maszyny i okolicy :)
regulator OFF hall = 2473
regulator OFF hall = 2413
Jak widać silnik reaguje bardzo żwawo na najmniejsze (co stopień) drgnięcie serwa. Może nawet trochę zbyt żwawo - może będę musiał zmniejszyć średnicę bębenka/orczyka, na który nawija się linka.
A może nie - pamiętać należy, że pracuje bez obciążenia. Później, gdy przyjdzie mu kręcić blisko 80-cio kilowym wałem z bijakami, jak dojdzie opór koszonej trawy - z tej wyrywności może pozostać niewiele.
Dziś już za ciemno a i wszyscy mamy dość - ale na jutro już naszykowane to:
Kod:
#include <Servo.h>
#define hallPin 2
Servo serwo;
volatile byte pozycja = 0;
unsigned long przerwa;
void setup()
{
pinMode(hallPin, INPUT_PULLUP);
pinMode(7, INPUT_PULLUP);
serwo.attach(11);
serwo.write(pozycja);
Serial.begin(9600);
}
void loop()
{
byte licznik = 0;
unsigned long srednia = 0;
unsigned int odczyt;
while (licznik < 10)
{
odczyt = pulseIn(hallPin, LOW);
if ((odczyt > 2200)&&(odczyt < 3400))
{
srednia += odczyt;
licznik++;
}
}
srednia /= 10;
byte obl_pozycja = map(srednia, 3400, 2200, 12, 18);
if((pozycja < obl_pozycja)&&(obl_pozycja < 13)) pozycja++;
if((pozycja > obl_pozycja)&&(obl_pozycja > 15)) pozycja--;
if (digitalRead(7) == HIGH)
{
pozycja = 0;
serwo.write(pozycja);
Serial.print("regulator OFF\t");
Serial.print("\pozycja serwa=\t");
Serial.print(pozycja);
Serial.print("\ hall=\t");
Serial.println(srednia);
delay(1000);
}
if (digitalRead(7) == LOW && pozycja < 12)
{
pozycja ++;
serwo.write(pozycja);
Serial.print("trwa ustawianie...\t");
Serial.print("\pozycja serwa=\t");
Serial.println(pozycja);
delay(1000);
}
if (digitalRead(7) == LOW && pozycja >= 12)
{
serwo.write(pozycja);
Serial.print("regulator ON\t");
Serial.print("\pozycja serwa =\t");
Serial.print(pozycja);
Serial.print("\ hall =\t");
Serial.println(srednia);
}
}
i będzie próba generalna.
Jeśli nie ma "byków" to zostanie kosmetyka - montaż "prztyczka" w przednim panelu, jakaś estetyczna diodka jako kontrolka, mocowanie wiązki przewodów itp.
Potem...próba pod obciążeniem!
ps. to ta nie informatyczna część prac:
A w zaistnieniu takiej oto maszynerii Twoja wiedza i dobra wola pomaga:
>Robimy dziś grilla?
<ok. będę potrzebował: wiertarkę, arkusz blachy…
<ok. będę potrzebował: wiertarkę, arkusz blachy…