Мой регион: Россия

TM7K IIC, Светодиодный стрелочный индикатор с АЦП, STM32F030F4P6

Ном. номер: 9000347877
Артикул: TM7K IIC
Производитель: DIY
TM7K IIC, Светодиодный стрелочный индикатор с АЦП, STM32F030F4P6
340 руб.
Это набор компонентов
(см.спецификацию ниже)
Добавить в корзину 1 шт. на сумму 340 руб.
В кредит от 0 руб./мес

Спецификация набора

НаименованиеЦенаКол-во
TM7KA, Светодиодный стрелочный индикатор уровня. 340 руб. 1

Новая прошивка изменяет свойства модуля TM7K. Модуль настроен на работу с последовательным интерфейсом I2C. Получилось I2C Slave устройство.

Новые возможности модуля:

1) Отображение значения измеряемого напряжения на стрелочном индикаторе.
2) Управление по I2C.
3) Передача текущих показаний АЦП.
4) Выбор режима отображения шкалы.
5) Задание максимального входного напряжения для соответствия положению крайней правой стрелки.
6) Управление светодиодами независимо от показаний АЦП.

Подробную информацию можно найти в файле << TM7K_I2C_описание команд >>
Для подключения модуля к Мастеру используются выводы С = SCL, D = SDA.
В скетче пример для использования модуля с Arduino

Это открытый проект! Лицензия, под которой он распространяется – Creative Commons - Attribution - Share Alike license.

Скетч. Код программы


#include <Wire.h>


#define   I2C_DEV_ADR     0x17 //адрес TM7K_I2C


byte Val = 0;


void setup()
{
  Serial.begin(9600);
  Wire.begin();
}

void loop()
{
  Val = 0;
  Wire.beginTransmission(I2C_DEV_ADR); //старт, передача адреса + бит записи
  Wire.write(0x10); //команда выбора режима
  Wire.write(0x03); //SAM = 0; SPM = 1; RVM = 1; 
                    //отображаются все стрелки до текущей позиции
                    //возможно отображение отдельных составляющих стрелки
                    //отображается принятое значение
  Wire.endTransmission(); //стоп
  delay(100);

  for (byte i = 0; i < 22; i++)
  {
    Wire.beginTransmission(I2C_DEV_ADR); //старт, передача адреса + бит записи
    Wire.write(0x20 | ((1 << Val) >> 8)); //команда записи значения для отображения + значение
    Wire.write((byte)(1 << Val));         //значение
    Wire.endTransmission(); //стоп
    delay(100);

    Val++;
    if (Val == 11)
    {
      Val = 0;
      Wire.beginTransmission(I2C_DEV_ADR); //старт, передача адреса + бит записи
      Wire.write(0x20);        //команда записи значения для отображения + значение
      Wire.write(0);           //значение, все светодиоды не светятся
      Wire.endTransmission();  //стоп
      delay(100);
    }
  }

  Val = 0;
  Wire.beginTransmission(I2C_DEV_ADR); //старт, передача адреса + бит записи
  Wire.write(0x10);        //команда выбора режима
  Wire.write(0x01);        //SAM = 0; SPM = 0; RVM = 1; 
                    //отображаются все стрелки до текущей позиции
                    //стрелка отображается только целиком, без разбиения на составляющие
                    //отображается принятое значение
  Wire.endTransmission();    //стоп
  delay(100);

  for (byte i = 0; i < 10; i++)
  {
    Wire.beginTransmission(I2C_DEV_ADR); //старт, передача адреса + бит записи
    Wire.write(0x20);        //команда записи значения для отображения
    Wire.write(Val);          //значение  
    Wire.endTransmission();   //стоп
    delay(100);

    Val++;
    if (Val == 5)
    {
      Val = 0;
    }
  }
  
  Val = 0;
  Wire.beginTransmission(I2C_DEV_ADR); //старт, передача адреса + бит записи
  Wire.write(0x10);        //команда выбора режима
  Wire.write(0x81);        //SAM = 1; SPM = 0; RVM = 1; 
                    //стрелка отображается только на текущей позиции
                    //стрелка отображается только целиком, без разбиения на составляющие
                    //отображается принятое значение  
  Wire.endTransmission();    //стоп
  delay(100);
  
  for (byte i = 0; i < 10; i++)
  {
    Wire.beginTransmission(I2C_DEV_ADR); //старт, передача адреса + бит записи
    Wire.write(0x20);        //команда записи значения для отображения
    Wire.write(Val);          //значение  
    Wire.endTransmission();   //стоп
    delay(100);

    Val++;
    if (Val == 5)
    {
      Val = 0;
    }
  }

  Wire.beginTransmission(I2C_DEV_ADR); //старт, передача адреса + бит записи
  Wire.write(0x30);        //команда чтения показаний АЦП
  Wire.endTransmission();   //стоп
  delay(100);
  //чтение показаний АЦП
  unsigned int ADCData = 0;
  Wire.requestFrom(I2C_DEV_ADR, 2);    // старт, передача адреса + бит чтения
  for (byte i = 0; i < 2; i++)
    ADCData |= Wire.read() << (8 * i); //чтение данных
  
  Serial.println(ADCData); //вывод показаний АЦП
  Serial.println();
  delay(1000);
  
}

Техническая документация

Видео

Выберите регион, чтобы увидеть способы получения товара.

Комментарии