úte 13.02.2018 13:52
Platí to pro avr, citát je z ATmegy.BoŠ píše:... že pro AtTiny platí...,
úte 13.02.2018 14:09
ellet píše:Platí to pro avr, citát je z ATmegy.
stř 14.02.2018 18:10
stř 14.02.2018 19:10
// dve serva na jednom kanalu:
int neutral_uS = 1500;
int hystereze = 20;
int puls_uS = 1500;
int puls1_uS = 1500;
int puls2_uS = 1500;
int ramec_uS = 20000;
byte pocet_imp = 0;
const byte LED = 1;
const byte PWM = 2;
const byte servo1 = 3;
const byte servo2 = 4;
void setup() {
pinMode(LED, OUTPUT); // LEDka
pinMode(PWM, INPUT); // vstup PWM
pinMode(servo1, OUTPUT); // servo 1
pinMode(servo2, OUTPUT); // servo 2
attachInterrupt(0, ctipuls, RISING);
}
void loop() {
pocet_imp++;
if (pocet_imp > 3) puls_uS = neutral_uS;
if (puls_uS > 1520){
puls1_uS = puls_uS * 2 - 2000;
}
else {
puls1_uS = 1000;
}
if (puls_uS < 1480){
puls2_uS = puls_uS * 2 - 1000;
}
else {
puls2_uS = 2000;
}
if (puls_uS > neutral_uS + hystereze) digitalWrite(LED, HIGH);
if (puls_uS < neutral_uS - hystereze) digitalWrite(LED, LOW);
noInterrupts();
pulz(puls1_uS, servo1);
pulz(puls2_uS, servo2);
interrupts();
delayMicroseconds(ramec_uS - puls_uS);
}
void pulz(int pulz_uS, byte servo) {
digitalWrite(servo, HIGH);
delayMicroseconds(pulz_uS);
digitalWrite(servo, LOW);
}
void ctipuls() {
unsigned long aktual_uS = micros();
long newpuls_uS;
while (digitalRead(2) == HIGH) {
}
newpuls_uS = micros() - aktual_uS;
if (newpuls_uS < 900) newpuls_uS = puls_uS; // osetreni delky
if (newpuls_uS > 2100) newpuls_uS = puls_uS; // osetreni delky
puls_uS = newpuls_uS;
pocet_imp = 0;
}
stř 14.02.2018 21:32
Pro Nano ten převodník nepotřebuješ ale určitě se bude hodit pro Mini Pro, které brzo objednáš. (A snad jsi objednal převodník s 6-ti koiíky, je s ním pohodlnější práce)jyrry píše:...A na cestě je ATmega328 nano a adapter USB-TTL CP2102.
stř 14.02.2018 23:53
pát 16.02.2018 22:13
pát 16.02.2018 22:33
Nic, je tam (mám tu samou z ebay).jyrry píše:Ještě lama-otázku
Co budu potřebovat k téhle desce? Bootloader tam asi nebude, přes co se to nakrmí?
sob 17.02.2018 0:18
pon 05.03.2018 17:41
pon 05.03.2018 17:45
pon 05.03.2018 18:46
pon 05.03.2018 19:22
pon 05.03.2018 20:33
// servo tester:
unsigned int puls1_uS = 1500;
unsigned int puls2_uS = 1500;
unsigned int puls3_uS = 1500;
unsigned int krok;
unsigned long aktual_uS;
unsigned long ramec_uS = 20000;
const byte PWM = 2;
const byte servo1 = 3;
const byte servo2 = 4;
const byte servo3 = 5;
const byte POT = A0;
void setup() {
pinMode(servo1, OUTPUT); // servo 1
pinMode(servo2, OUTPUT); // servo 2
pinMode(servo3, OUTPUT); // servo 3
pinMode(POT, INPUT); // POTak
}
void loop() {
while (puls2_uS < 2000){
nacti();
puls2_uS = puls2_uS + krok;
pulzy();
while (micros() - aktual_uS < ramec_uS){}
}
while (puls2_uS > 1000){
nacti();
puls2_uS = puls2_uS - krok;
pulzy();
while (micros() - aktual_uS < ramec_uS){}
}
}
void nacti() {
aktual_uS = micros();
puls1_uS = analogRead(POT) + 1000;
krok = analogRead(POT) / 10;
}
void pulzy() {
pulz(puls1_uS, servo1);
pulz(puls2_uS, servo2);
pulz(puls3_uS, servo3);
}
void pulz(int pulz_uS, byte servo) {
digitalWrite(servo, HIGH);
delayMicroseconds(pulz_uS);
digitalWrite(servo, LOW);
}
pon 05.03.2018 22:43