Перейти к содержанию
    

Цифровой потенциометр и его шаги.

Взять сопротивление потенциометра в 10 раз меньшее, тогда первые 25 шагов будут перекрывать диапазон исходного потенциометра.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

38 минут назад, d00r сказал:

 возможно можно как-то перескакивать, например разбить на 100 шагов встроенные ключи?

Возможно. Уже 3 раза написал. Спасибо за внимание.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот потенциометр, на 64 шага. 2 кнопки. Куда сувать генератор?????

ds1809.pdf

 

Я сам принцип понять не могу, как генератор заставить пропускать несколько нажатий? Я с таким не сталкивался.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, d00r сказал:

Я сам принцип понять не могу, как генератор заставить пропускать несколько нажатий? Я с таким не сталкивался.

А сколько нужно нажатий пропускать?

Если это имеет значение, то придётся городить схему на триггерах или счётчиках и логике (без MCU).

Если не имеет, ставьте генератор для кварцевых часов и через кнопки на UC и DC, а пользователь пусть секунды считает.

Всё усложнилось без микроконтроллера до неприличия 🤣

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 часов назад, d00r сказал:

Куда сувать генератор?????

 

В 05.04.2023 в 20:51, Сергей Борщ сказал:

на вторые концы кнопок подать сигнал с генератора (одна микросхема или два транзистора), тогда потенциометр будет шагать пока нажата кнопка.

Чтобы кнопка подавала на входы потенциометра не 0 или 1, а импульсы с генератора.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 hours ago, byRAM said:

А сколько нужно нажатий пропускать?

Если это имеет значение, то придётся городить схему на триггерах или счётчиках и логике (без MCU).


Вот! То что нужно! Нужно пропускать по 10 шагов - как посчитать частоту генератора?
NE555 Подойдёт?

Мжете описать принцымп и последовательность, если не сложно.... MCU не вариант.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, d00r сказал:


Вот! То что нужно! Нужно пропускать по 10 шагов - как посчитать частоту генератора?
NE555 Подойдёт?

 Насчёт NE555 не в теме, никогда не работал.

Вроде как он либо задержку, либо импульсы формирует.

Может быть на двух NE555 или каком-то новом и получится.

Если ошибаюсь - не взыщите, не помню, чтобы он был незаменим цифровыми микросхемами.

А чем логика тогда плоха, там обвеса никакого не надо, кварц с логическими элементами да счётчик.

Лучше 8 импульсов подряд, там хвоста не будет, да и схема проще.

Изменено пользователем byRAM

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

#include <tiny13a.h>
//        ^ тип процессора
#include <delay.h>

interrupt [PC_INT0] void pin_change_isr(void) { } 
// по изменению входа просто просыпаемся и в главном цикле опрашиваем вход.

unsigned char GetData (void) // опрос входов
{
unsigned char i, j;
for(i = 0; i < 10; i++) // Подавление дребезга
  {                 
    delay_ms(1); j = PINB & 0x03; delay_ms(1);
    if(j != (PINB & 0x03)) i = 0;
  }
return j;
}

void main(void)
{
unsigned char i;

#pragma optsize-
CLKPR=0x80; CLKPR=0x03;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

PORTB=0x03; DDRB=0x0C; GIMSK=0x20; MCUCR=0x00; PCMSK=0x03; GIFR=0x20;
#asm("sei")
// настроил порты на вход с подтяжкой и прерыванием по изменению  и на выход.
  
while (1)
      {
        switch (GetData())
        {
         case 0x02: 
           for (i = 0; i <10; i++) {PORTB.2 = 1; delay_ms (1); PORTB.2 = 0; delay_ms (1); } // выход на первый канал 
           // подобрать кол^ импульсов               длину ^                  паузу   ^        
         break;  
         case 0x01: 
           for (i = 0; i <10; i++) {PORTB.3 = 1; delay_ms (1); PORTB.3 = 0; delay_ms (1); } // выход на второй канал
           // подобрать кол^ импульсов               длину ^                  паузу   ^        
         break;  
        }                                  

        while ( GetData() != 0x03) delay_ms (1); // Ожидание отпускания.
  
        MCUCR &= ~(1<<SM1); MCUCR &= ~(1<<SM0); MCUCR |= (1<<SE);
        #asm("sleep"); // Спим до следующего нажатия на кнопку.
      }
}

Вот примерно так 🙂

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 12.04.2023 в 02:37, d00r сказал:

Вот потенциометр ... ds1809 ... на 64 шага. 2 кнопки. Куда сувать генератор?

Никуда, достаточно было почитать данный паспорт — там встроенный автоповтор 10 Гц уже в наличии, даже формулу дали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...