TM7P IIC, I2C светодиодный линейный индикатор и двумя АЦП, STM32F030F4P6

TM7P IIC, I2C светодиодный линейный индикатор и двумя АЦП, STM32F030F4P6
Есть в наличии. Отгрузка со склада в Москве 1-2 рабочих дня.
313.30 × = 313.30

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

То, что у вас уже есть, вы можете удалить в корзине.

НаименованиеЦенаКол-во
Печатная плата tm7pv2, Печатная плата с разводкой, FR4 25.4х25.4мм (1.5мм, 18мкм) 130 1
STM32F030F4P6, Микроконтроллер 32-Бит, Cortex-M0, 48МГц, 16КБ Flash [TSSOP20] 49 1
LP2985AIM5-3.3/NOPB, Малошумящий стабилизатор напряжения с отключением (0.01мкА), 150мА, 3.3В [SOT23-5] 28 1
Кер.ЧИП конд. 4.7 мкФ Y5V 10% 10В 0603, GRM188F51A475ZE20D 3 4
Кер.ЧИП конд. 0.01 мкФ,Y5V 50В,+80-20%,0603 0.90 1
Кер.ЧИП конд. 0.1мкФ,Y5V 50В, 20%,0603 0.90 3
TECAP, 10 мкФ, 10 В, тип A, 10%, Конденсатор танталовый SMD 9 1
0.063Вт 0603 390 Ом, 5%, Чип резистор (SMD) 0.90 10
0.063Вт 0603 4.7 кОм, 5%, Чип резистор (SMD) 0.90 2
0.063Вт 0603 10 кОм, 5%, Чип резистор (SMD) 0.90 1
KP-2012EC, Светодиод красный 2х1.2х1.1 12мКд 8 2
KP-2012SGC, Светодиод зеленый 2х1.2x1.1 15мКд 6 8
PLS-6 (DS1021-1x6), Вилка штыревая 2.54мм 1x6 прямая тип1 6 1

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

#include <Wire.h>


#define   I2C_DEV_ADR     0x20 //адрес 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(); //стоп

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

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

    Wire.beginTransmission(I2C_DEV_ADR); //старт, передача адреса + бит записи
    Wire.write(0x21); //команда записи значения для отображения + выбор канала
    Wire.write((byte)(1 << (5 - Val)));         //значение
    Wire.endTransmission(); //стоп
    delay(100);

    Val++;
    if (Val == 6)
      Val = 0;
  }


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

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

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

    Wire.beginTransmission(I2C_DEV_ADR); //старт, передача адреса + бит записи
    Wire.write(0x21);        //команда записи значения для отображения
    Wire.write(5 - Val);          //значение  
    Wire.endTransmission();   //стоп
    delay(100);

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


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

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

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

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


  Wire.beginTransmission(I2C_DEV_ADR); //старт, передача адреса + бит записи
  Wire.write(0x30);        //команда чтения показаний АЦП + выбор канала
  Wire.endTransmission();   //стоп
  //чтение показаний АЦП
  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); //вывод показаний АЦП

  Wire.beginTransmission(I2C_DEV_ADR); //старт, передача адреса + бит записи
  Wire.write(0x31);        //команда чтения показаний АЦП + выбор канала
  Wire.endTransmission();   //стоп
  //чтение показаний АЦП
  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);
  
}

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

Комментарии