Змінюй хід війни! Допомагай ЗСУ!

Arduino-что это и с чем его едят?

🟢 06:35 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • 🟢 06:35 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #121
значит, что сигнал на выходе INT DS-a будет формироваться в 0 часов 0 минут 20 секунд, в 20 секунд первого ночи
Не совсем так, если я правильно понял:
setAlarm(ALARM_TYPES_t alarmType, byte seconds, byte minutes, byte hours, byte daydate)
Description

Set an alarm time. Sets the alarm registers only. To cause the INT pin to be asserted on alarm match, use alarmInterrupt(). This method can set either Alarm 1 or Alarm 2, depending on the value of alarmType (use the ALARM_TYPES_t enumeration above). When setting Alarm 2, the seconds value must be supplied but is ignored, recommend using zero. (Alarm 2 has no seconds register.)
Syntax

HTML:
RTC.setAlarm(alarmType, seconds, minutes, hours, dayOrDate);
Parameters

alarmType: A value from the ALARM_TYPES_t enumeration, above. (ALARM_TYPES_t)
seconds: The seconds value to set the alarm to. (byte)
minutes: The minutes value to set the alarm to. (byte)
hours: The hours value to set the alarm to. (byte)
dayOrDate: The day of the week or the date of the month. For day of the week, use a value from the Time library timeDayOfWeek_t enumeration, i.e. dowSunday, dowMonday, dowTuesday, dowWednesday, dowThursday, dowFriday, dowSaturday. (byte)
Returns

None.
Example

//Set Alarm1 for 12:34:56 on Sunday
HTML:
RTC.setAlarm(ALM1_MATCH_DAY, 56, 34, 12, dowSunday);

setAlarm(ALARM_TYPES_t alarmType, byte minutes, byte hours, byte daydate)
Description

Set an alarm time. Sets the alarm registers only. To cause the INT pin to be asserted on alarm match, use alarmInterrupt(). This method can set either Alarm 1 or Alarm 2, depending on the value of alarmType (use the ALARM_TYPES_t enumeration above). However, when using this method to set Alarm 1, the seconds value is set to zero. (Alarm 2 has no seconds register.)
Syntax

HTML:
RTC.setAlarm(alarmType, minutes, hours, dayOrDate);
Parameters

alarmType: A value from the ALARM_TYPES_t enumeration, above. (ALARM_TYPES_t)
minutes: The minutes value to set the alarm to. (byte)
hours: The hours value to set the alarm to. (byte)
dayOrDate: The day of the week or the date of the month. For day of the week, use a value from the Time library timeDayOfWeek_t enumeration, i.e. dowSunday, dowMonday, dowTuesday, dowWednesday, dowThursday, dowFriday, dowSaturday. (byte)
Returns

None.
Example

//Set Alarm2 for 12:34 on the 4th day of the month
HTML:
RTC.setAlarm(ALM1_MATCH_DATE, 34, 12, 4);
То есть имеем два примера, где в одном случае ставим на время конкретного дня недели, во втором - на конкретную дату. Как поставить просто на конкретный час, не привязываясь к дню недели и дате - я не могу понять :(

"Прерывание" надо включить
И обработать "прерывание"
Влепил такое:
HTML:
  RTC.alarmInterrupt(ALARM_2, true); //Включение будильника  
  RTC.squareWave(SQWAVE_1024_HZ); //Задание частоты на SQW
Второе - чтобы не проскакивали явные нули на SQW. Как только в программе включаю библиотеки Wire и DS3231 - сразу в любом случае сыпет данными в порт, хотя я бы предпочёл, чтобы оно проснулось (см. выше), считало данные времени, показания веса, их интерпретировало, и заснуло обратно до следующего пинка будильником через сутки...
 
  • 🟢 06:35 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #122
RTC.squareWave(SQWAVE_1024_HZ); //Задание частоты на SQW

Второе - чтобы не проскакивали явные нули на SQW. Как только в программе включаю библиотеки Wire и DS3231 - сразу в любом случае сыпет данными в порт, хотя я бы предпочёл, чтобы оно проснулось (см. выше), считало данные времени, показания веса, их интерпретировало, и заснуло обратно до следующего пинка будильником через сутки...

Тогда может стоит записать в регистр 0Eh не
а 06h ?
 
  • 🟢 06:35 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #123
А можно для блондинок: как? ;)
 
  • 🟢 06:35 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #124
Средствами ардуины не знаю.
 
  • 🟢 06:35 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #125
Влепил такое:
Код HTML:
RTC.alarmInterrupt(ALARM_2, true); //Включение будильника
RTC.squareWave(SQWAVE_1024_HZ); //Задание частоты на SQW
Второе - чтобы не проскакивали явные нули на SQW.

А зачем вам генератор да еще с частотой килогерц?
Если вы подключите выход SQW к входу прерывания на Ардуине, то он будет "будить" её 1000 раз в секунду.


void setAlarm(ALARM_TYPES_t alarmType, byte minutes, byte hours, byte daydate);

Т.к. ALM2_MATCH_HOURS -- causes an alarm when the hours and minutes match.
Запись RTC.setAlarm(ALM2_MATCH_HOURS, 40, 07, 01); должна будить в 7:40, независтмо от daydate.

ИМХО должно быть так

Код:
#include <DS3232RTC.h>    //https://github.com/JChristensen/DS3232RTC
#include <Time.h>         //https://www.arduino.cc/playground/Code/Time  
#include <Wire.h>         //https://arduino.cc/en/Reference/Wire (included with Arduino IDE)
....
void setup(void)
{
.....
RTC.squareWave(SQWAVE_NONE);
RTC.setAlarm(ALM2_MATCH_HOURS, 40, 07, 01); 
RTC.alarmInterrupt(ALARM_2, true); 
}

Прошу прощения за ввод вас в заблуждение предидущими заявлениямими типа

Т.е запись

Код HTML:
RTC.setAlarm(ALM2_MATCH_HOURS, 0, 0, 20);
значит, что сигнал на выходе INT DS-a будет формироваться в 0 часов 0 минут 20 секунд, в 20 секунд первого ночи
 
Останнє редагування:
  • 🟢 06:35 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #126
Спасибо! Система собрана на работе - дома компа нет. Завтра буду пробовать :)
 
  • 🟢 06:35 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #127
Спасибо! Система собрана на работе - дома компа нет. Завтра буду пробовать :)

Я тут решил поиграться со спящим режимом.. И понял,что на ардуине - это, пожалуй, смешно!
Нахрена тебе там спящий режим на процессоре, если у тебя там стоит светодиод по питанию и "утюг" стабилизатора?
Как бы на этом фоне спать проц укладывать - есть ли сакральный смысл?!
Померил. У меня без проца - 7 мА ХХ ;-)



⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
 
Останнє редагування:
Назад
Зверху Знизу