www.kn34pc.com

Форум на силистренските радиолюбители
Дата и час: 07 Ное 2024, 22:12

Часовете са според зоната UTC + 2 часа [ DST ]




Напиши нова тема Отговори на тема  [ 3 мнения ] 
Автор Съобщение
МнениеПубликувано на: 14 Юни 2020, 09:16 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1535
Местоположение: Силистра
Автоматичен ароматизатор под управление на Arduino
статия: https://kn34pc.com/construct/lz2wsg_ard ... spray.html

Имаше предложение за замяна на превклювателя за времената (10 min / 20 min) с потенциометър.
При това задаването на времето ще е с много възможности.

Вероятно при задаване на време с потенциометър трябва да се помисли за някаква индикация:
1: проста скаличка на копчето за вътрене
2: промяна и на времената на мигане на светодиода


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 14 Юни 2020, 09:22 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1535
Местоположение: Силистра
За конкретната реализация и едно време беше достатъчно. Но за друга реализация мисля допълнението е в полза.


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 08 Авг 2024, 20:06 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1535
Местоположение: Силистра
За повторна реализация на първоначалната идея използвах PIC микроконтролер.
Първоначално кодът беше предназначен за наличните PIC12F508 (които заради ограничените си ресурси едва ли някъде ще използвам освен за прости идеи).

Но използвах PIC16F15313: беше наличен на работната маса и беше вече монтиран на преходна платчица SO8 към DIL8.
CCS PIC-C Compiler.

Работни времена:
- при старт: 10 s пауза, 200 ms тестов импулс
- индикаторен светодиод: импулс 200 ms / 5 s в покой
- изпълнително устройство: импулс 200 ms / 45 min в покой

Код за потвърждение:
#include <main.h>
#include <stdint.h>
#include <stdbool.h>

// PIC16F15313
//               _____
//         VDD -|  ^  |- VSS
// OSC1/PIN_A5 -|     |- PIN_A0/ICSPDAT
// OSC2/PIN_A4 -|     |- PIN_A1/ICSPCLK
// MCLR/PIN_A3 -|_____|- PIN_A2

#use delay(internal = 4000000)

#define PIN_RL      PIN_A4
#define PIN_LED     PIN_A5

#define TIME_X      200            // 200 ms
#define TIME_START  (50 * TIME_X)  // 10 s = 50 * 200 ms
#define TIME_WAIT   (45 * 60 * 5)  // 45 min = 2700 s = (45 * 60 * 5) * 200 ms
// #define TIME_WAIT   (2 * 60 * 5)   // 2 min = 120 s = (2 * 60 * 5) * 200 ms

#use FIXED_IO(A_outputs = PIN_LED, PIN_RL)

bool led = TRUE;
bool rl = TRUE;
uint16_t t = 0;

void main() {
  delay_ms(TIME_START);
  output_high(PIN_LED);
  output_high(PIN_RL);

  while (TRUE) {
    delay_ms(TIME_X);
    t++;

    if (led)
      output_low(PIN_LED);

    if (rl)
      output_low(PIN_RL);

    // if (t % 10 == 0) {  // 2000 ms = 200 ms * 10
    if (t % 25 == 0) {  // 5000 ms = 200 ms * 25
      led = TRUE;
      output_high(PIN_LED);
    }

    if (t > TIME_WAIT) {
      rl = TRUE;
      output_high(PIN_RL);
      t = 0;
    }
  }
}

Платче: 23 x 13 mm, рязано с ножче и дремел.


Прикачени файлове:
auto_spray_pic.gif
auto_spray_pic.gif [ 27.3 KiB | Прегледано 134 пъти ]
pcb.jpg
pcb.jpg [ 296.58 KiB | Прегледано 134 пъти ]
Върнете се в началото
 Профил  
 
Покажи мненията от миналия:  Сортирай по  
Напиши нова тема Отговори на тема  [ 3 мнения ] 

Часовете са според зоната UTC + 2 часа [ DST ]


Кой е на линия

Потребители, разглеждащи този форум: 0 регистрирани и 1 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
cron
Форумът се задвижва от phpBB® Forum Software © phpBB Group
Преведено от yarnaudov.com