RTC a ovládání motorku

Odpovědět
DugButabi
Příspěvky: 2
Registrován: 02 čer 2018, 18:08
Reputation: 0

RTC a ovládání motorku

Příspěvek od DugButabi » 02 čer 2018, 18:45

Zdravím,
používám RTC modul DS1307 a H můstek L293D.
Zvlášť tyto komponenty fungují bez problému, ale jakmile se snažím dát do jednoho programu, tak se program zasekne. Snažím se s motorkem pohybovat dopředu mezi 20 a 30 sekundami a dozadu mezi 40 a 50 sekundami. Motorek se v daném okamžiku roztočí, ale v sériovém monitoru sekundy přestanou počítat, tzn. se pak točí pořád. Prosím o radu. Děkuji.




#include <Wire.h>
#include "RTClib.h"

const byte IC_INPUT_1 = 3; // connect IC Input1 to ~3
const byte IC_INPUT_2 = 2; // connect IC Input2 to 2
const byte IC_ENABLE_1 = 9; // connect IC Enable1 t ~9

byte motor_is_enabled = 0; // whether the motor is on/off
byte motor_direction = 0; // motor direction


// vytvoření instance DS1307 z knihovny RTClib
RTC_DS1307 DS1307;

int switchState = 0;

void setup() {
pinMode(IC_INPUT_1, OUTPUT);
pinMode(IC_INPUT_2, OUTPUT);
pinMode(IC_ENABLE_1, OUTPUT);
Serial.begin(9600);
DS1307.adjust(DateTime(2018, 6, 1, 18, 10, 11));
}

void loop() {
DateTime now = DS1307.now();
if (10 < now.second() && now.second() < 20) {
motor_is_enabled = 1;
motor_direction = 1;
}
else if (40 < now.second() && now.second() < 50) {
motor_is_enabled = 1;
motor_direction = 0;
}
else {
motor_is_enabled = 0;
}

if (motor_direction) {
digitalWrite(IC_INPUT_1, LOW);
digitalWrite(IC_INPUT_2, HIGH);
} else {
digitalWrite(IC_INPUT_1, HIGH);
digitalWrite(IC_INPUT_2, LOW);
}

int motor_speed = 320;
if (motor_is_enabled) {
analogWrite(IC_ENABLE_1, motor_speed);
} else {
analogWrite(IC_ENABLE_1, 0);
}

Serial.println(now.second());
}

DugButabi
Příspěvky: 2
Registrován: 02 čer 2018, 18:08
Reputation: 0

Re: RTC a ovládání motorku

Příspěvek od DugButabi » 02 čer 2018, 19:22

Už mi to funguje, stačilo zvětšit napájení můstku pro motorek. Téma už nejde vymazat?

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 6 hostů