készítettem egy stepper motor vezérlést, amivel egy fényvezérelt csapóajtót akarok működtetni fel és le (Magyarul tyúkólajtót, ami reggel kinyit este becsuk). Innen van az ötlet: https://www.chickenguard.com/
Szóval a dolog készen van, program működik, fényre oda vissza... DE TÚLMELEGEDIK A H HÍD (L298N)
Az Arduino Uno-t egy 9V-os laposelemel hajtom meg, a stepper motort pedig egy 12,8V-os 500mA-es akkuval. A stepper motor speckója ez: http://hobbielektronikabolt.hu/spd/STM0 ... -4-vezetek
Persze a motor matricája alapján nem pont ez jött Kínából (most OUKEDA a neve), vagy ki tudja... méretre stimmel talán
A bekötésem ilyen: E mellett még van egy munkalap a fényérzékelővel és egy kis hangszóróval. Ennyi.
A tünet:
Ha a 12,8V-os elemmel hajtom meg a motorvezérlést, akkor iszonyúan felmelegszik a H híd és konkrétan elolvadnak a drótok. Minden működik, de kb. 10-20 mp után le kell csatlakoztatnom az elemről, mert elolvad a műanyag a dróton... ellenben a motor megy, erős, stb...
Ha a 9V-os elemmel hajtom meg a motort, akkor nem melegszik, de nincs elég nyomatéka a motornak, kézzel simán meg tudom fogni. (Míg az előbbinél nem tudom megállítani kézzel).
Két lehetőséget látok:
1. Mintha valahol olvastam volna fél lépéses működést, vagy valamilyen más vezérlést, amiben a motornak a nyomatéka erősebb volt --> ebben az esetben elég lenne a 9V-os táp.
2. Meg kellene szüntetnem a melegedést a 12,8V-os tápolásnál... - DE HOGYAN?
Láttok valamit hirtelen, ami segíthetne?
ELŐRE IS KÖSZI!
Lassan jön a szabi, ki fogja kiengedni a csibéket?
Idemásolom a kódomat is, még nincs letisztázva, meg levédetve, de sebaj
/*
Tyúkól ajtó nyitó-Záró
Created 16 July. 2018
Modified
by Gyula
*/
#include <Stepper.h>
//set pin numbers
const int ledPin = 13;
const int buzzerPin = 12;
const int ldrPin = A0;
int Zaras=0; //zárás init érték
int Nyitas=0; //nyitás init érték
const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution
// for your motor
// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(ldrPin, INPUT);
// set the speed at 60 rpm:
myStepper.setSpeed(200);
// initialize the serial port:
Serial.begin(9600);
}
void loop() {
int ldrStatus = analogRead(ldrPin); //fényesség beolvasása
int i=0; //stepper motor léptető
if (ldrStatus <= 500) {
//ha lement a nap*************************
if (Zaras != 1) {
tone(buzzerPin, 100);
//digitalWrite(ledPin, HIGH);
//delay(100);
// step one revolution in one direction:
myStepper.step(stepsPerRevolution);
myStepper.step(stepsPerRevolution);
myStepper.step(stepsPerRevolution);
myStepper.step(stepsPerRevolution);
myStepper.step(stepsPerRevolution);
myStepper.step(stepsPerRevolution);
myStepper.step(stepsPerRevolution);
myStepper.step(stepsPerRevolution);
myStepper.step(stepsPerRevolution);
myStepper.step(stepsPerRevolution);
myStepper.step(stepsPerRevolution);
myStepper.step(stepsPerRevolution);
Zaras = 1;
Nyitas = 0;
noTone(buzzerPin);
//delay(1500);
//digitalWrite(ledPin, LOW);
}
}
else {
// ha kisütött a nap**********************
if (Nyitas != 1) {
digitalWrite(ledPin, LOW);
// step one revolution in the other direction:
myStepper.step(-stepsPerRevolution);
myStepper.step(-stepsPerRevolution);
myStepper.step(-stepsPerRevolution);
myStepper.step(-stepsPerRevolution);
myStepper.step(-stepsPerRevolution);
myStepper.step(-stepsPerRevolution);
myStepper.step(-stepsPerRevolution);
myStepper.step(-stepsPerRevolution);
myStepper.step(-stepsPerRevolution);
myStepper.step(-stepsPerRevolution);
myStepper.step(-stepsPerRevolution);
myStepper.step(-stepsPerRevolution);
//delay(1500);
Zaras = 0;
Nyitas = 1;
}
}
}
