Jump to content

Search the Community

Showing results for tags 'Arduino'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Вопрос-Ответ. Для начинающих
    • Песочница (Q&A)
    • Дайте схему!
    • Школьникам и студентам
    • Начинающим
    • Паяльник TV
    • Обсуждение материалов с сайта
  • Радиоэлектроника для профессионалов
    • Автомобильная электроника
    • Питание
    • Ремонт
    • Системы охраны и наблюдения. Личная безопасность
    • Роботы и модели на ДУ-управлении
    • Световые эффекты и LED
    • Самодельные устройства к компьютеру
    • Программное обеспечение
    • Металлоискатели
    • Автоматика
    • Электрика
    • Промышленная электроника
    • Измерительная техника
    • Мастерская радиолюбителя
    • КВ и УКВ радиосвязь
    • Жучки
    • Сотовая связь
    • Спутниковое ТВ
    • Телефония и фрикинг
    • Высокое напряжение
    • Идеи и технологии будущего
    • Справочная радиоэлементов
    • Литература
    • Схемотехника для профессионалов
    • Разное
  • Аудио
    • FAQ, Технологии и компоненты
    • Для начинающих
    • Источники звука
    • Предусилители, темброблоки, фильтры
    • Питание аудио аппаратуры
    • Усилители мощности
    • Акустические системы
    • Авто-аудио
    • Ламповая техника
    • Гитарное оборудование
    • Прочее
  • Микроконтроллеры
  • Товары и услуги
  • Разное
  • Переделки's ATX->ЛБП
  • Переделки's разные темы
  • Киловольты юмора's Юмор в youtube

Blogs

There are no results to display.

There are no results to display.

Marker Groups

  • Пользователи форума

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


ICQ


Skype


Интересы


Город


Сфера радиоэлектроники


Оборудование

Found 46 results

  1. Недавно я завершил проект по отпиранию двери с помощью сенсорного экрана с пронесенной картой. Как решить проблему, когда MFRC522 не называет тип при запуске Arduino #include <SoftwareSerial.h> #include <Servo.h> #include <SPI.h> #include <MFRC522.h> #include <IRremote.h> #define SS_PIN 10 // customize the two PIN ports of the RC522 #define RST_PIN 9 #define RECV_PIN 5 // IR receive pins #define CARDS 4 //number of cards #define SERVO_PIN 6 // Servo port #define BUZZ_PIN 8 //buzzer pin long int IR_ID = 0xFFABCD; //define IR variable string ESP01S_Data = "". decode_results result. const byte User_ID[CARDS][4] = { {0xDD, 0xAA, 0xBB, 0x11}, // campus card {0xAD, 0x99, 0xDD, 0xEE}, }; //Save multiple card uid values MFRC522 rfid(SS_PIN, RST_PIN); //new RC522 object Servo myservo; SoftwareSerial EspSerial(3, 2); // RX, TX IRrecv irrecv(RECV_PIN);
  2. Я хочу построить простой шлюз с arduino+nrf24l01+enc28j60, nrf24l01 принимает сигнал и enc28j60 передает его в LAN, но проблема в том, что и nrf24l01 и enc28j60 используют протокол SPI для взаимодействия с arduino, если я хочу использовать собственный lib разработки arduino, я могу выбрать только один из nrf24l01 и enc28j60, потому что они имеют общее определение (pins_arduino.h). static const uint8_t SS = 10; static const uint8_t MOSI = 11; static const uint8_t MISO = 12; static const uint8_t SCK = 13 Итак, решение состоит в том, чтобы выбрать nrf24l01 вместо использования lib development, которая поставляется с arduino, но использовать другой IO порт, который я разработал сам, это правильно?
  3. Недавно я использовал Arduino для программирования stm32, и мне нужно использовать ШИМ-выход, но кажется, что частота фиксирована на 550 Гц. Я хотел бы знать, как изменить частоту ШИМ простым и легким способом. Например, я могу использовать analogWriteFreq(3000) для изменения частоты ШИМ на 3 КГц на ESP8266, но эта функция не работает на stm32. есть ли аналогичный метод для stm32?
  4. Я считаю, что знакомиться с новым продуктом, создавая игры, очень весело и нескучно, и именно поэтому я сделал этот проект. Этот проект заключается в использовании Arduino UNO и lcd-дисплея Stone tft для разработки простой игры в крестики-нолики. Материалы, необходимые для эксперимента Arduino UNO tft lcd дисплей Stone STWI070WT-01 Принцип работы системы Задайте, что первое нажатие на экран должно быть O, второе нажатие на экран - X, проделайте этот цикл. Установите 8 массивов для хранения количества O и X в каждой строке, столбце и диагонали каждой сетки, до тех пор, пока есть три одинаковых знака является победа, то будет мигающий красный ящик, чтобы доказать победу строки, столбца или диагонали, а затем нажмите сброс, чтобы начать игру снова. Простая схема соединения Разработка графического интерфейса пользователя Прежде чем я размещу код, мне действительно нужно поблагодарить всех на форуме за исправление моей ошибки при загрузке. После решения этой проблемы, мой код был загружен на плату UNO без каких-либо проблем, что, наконец, позволило мне реализовать мой проект. Спасибо всем, кто помог мне! unsigned int r_flag1 = 0; uint8_t RecievedTemp1[30] = {0}; //uint8_t *RecievedTemp1 = new uint8_t[30]; uint8_t cout_i = 0; unsigned int quan_hang1 = 0; unsigned int quan_hang2 = 0; unsigned int quan_hang3 = 0; unsigned int quan_lie1 = 0; unsigned int quan_lie2 = 0; unsigned int quan_lie3 = 0; unsigned int quan_zuoxia = 0; unsigned int quan_youxia = 0; //unsigned int quan[8]={0}; // unsigned int cha_hang1 = 0; unsigned int cha_hang2 = 0; unsigned int cha_hang3 = 0; unsigned int cha_lie1 = 0; unsigned int cha_lie2 = 0; unsigned int cha_lie3 = 0; unsigned int cha_zuoxia = 0; unsigned int cha_youxia = 0; unsigned int cha[8]={0}; void setup() { Serial.begin(115200); for(int i=3; i<=8; i++) pinMode(i,OUTPUT); } void loop(){ if(Serial.available() != 0) { // for(cout_i = 0; cout_i < 30; cout_i ++) // { // //RecievedTemp1[cout_i] = Serial.readBytes(RecievedTemp1, 15); // Serial.readBytes(RecievedTemp1, 20); // //Serial.println(RecievedTemp1[cout_i]); // } Serial.readBytes(RecievedTemp1, 20); for(cout_i = 0; cout_i < 19; cout_i ++) { Serial.println(RecievedTemp1[cout_i]); } switch(RecievedTemp1[13]) { case 49: if((r_flag1 == 0)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image2\",\"image\":\"circle\"}>ET")); r_flag1 = 1; quan_hang1++; quan_lie1++; quan_youxia++; // quan[0]++; // quan[3]++; // quan[7]++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button1\",\"enable\":false}>ET")); } else if((r_flag1 == 1)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image2\",\"image\":\"x\"}>ET")); r_flag1 = 0; cha_hang1++; cha_lie1++; cha_youxia++; // cha[0]++; // cha[3]++; // cha[7]++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button1\",\"enable\":false}>ET")); } break; case 50: if((r_flag1 == 0)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image3\",\"image\":\"circle\"}>ET")); r_flag1 = 1; quan_hang1++; quan_lie2++; // quan[0]++; // quan[4]++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button2\",\"enable\":false}>ET")); } else if((r_flag1 == 1)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image3\",\"image\":\"x\"}>ET")); r_flag1 = 0; cha_hang1++; cha_lie2++; // cha[0]++; // cha[4]++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button2\",\"enable\":false}>ET")); } break; case 51: if((r_flag1 == 0)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image4\",\"image\":\"circle\"}>ET")); r_flag1 = 1; quan_hang1++; quan_lie3++; quan_zuoxia++; // quan[0]++; // quan[5]++; // quan[6]++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button3\",\"enable\":false}>ET")); } else if((r_flag1 == 1)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image4\",\"image\":\"x\"}>ET")); r_flag1 = 0; cha_hang1++; cha_lie3++; cha_zuoxia++; // cha[0]++; // cha[5]++; // cha[6]++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button3\",\"enable\":false}>ET")); } break; case 52: if((r_flag1 == 0)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image5\",\"image\":\"circle\"}>ET")); r_flag1 = 1; quan_hang2++; quan_lie1++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button4\",\"enable\":false}>ET")); } else if((r_flag1 == 1)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image5\",\"image\":\"x\"}>ET")); r_flag1 = 0; cha_hang2++; cha_lie1++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button4\",\"enable\":false}>ET")); } break; case 53: if((r_flag1 == 0)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image6\",\"image\":\"circle\"}>ET")); r_flag1 = 1; quan_hang2++; quan_lie2++; quan_zuoxia++; quan_youxia++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button5\",\"enable\":false}>ET")); } else if((r_flag1 == 1)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image6\",\"image\":\"x\"}>ET")); r_flag1 = 0; cha_hang2++; cha_lie2++; cha_zuoxia++; cha_youxia++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button5\",\"enable\":false}>ET")); } break; case 54: if((r_flag1 == 0)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image7\",\"image\":\"circle\"}>ET")); r_flag1 = 1; quan_hang2++; quan_lie3++; // quan[1]++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button6\",\"enable\":false}>ET")); } else if((r_flag1 == 1)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image7\",\"image\":\"x\"}>ET")); r_flag1 = 0; cha_hang2++; cha_lie3++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button6\",\"enable\":false}>ET")); } break; case 55: if((r_flag1 == 0)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image8\",\"image\":\"circle\"}>ET")); r_flag1 = 1; quan_hang3++; quan_lie1++; quan_zuoxia++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button7\",\"enable\":false}>ET")); } else if((r_flag1 == 1)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image8\",\"image\":\"x\"}>ET")); r_flag1 = 0; cha_hang3++; cha_lie1++; cha_zuoxia++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button7\",\"enable\":false}>ET")); } break; case 56: if((r_flag1 == 0)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image9\",\"image\":\"circle\"}>ET")); r_flag1 = 1; quan_hang3++; quan_lie2++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button8\",\"enable\":false}>ET")); } else if((r_flag1 == 1)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image9\",\"image\":\"x\"}>ET")); r_flag1 = 0; cha_hang3++; cha_lie2++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button8\",\"enable\":false}>ET")); } break; case 57: if((r_flag1 == 0)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image10\",\"image\":\"circle\"}>ET")); r_flag1 = 1; quan_hang3++; quan_lie3++; quan_youxia++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button9\",\"enable\":false}>ET")); } else if((r_flag1 == 1)&&(RecievedTemp1[14]==2)) { Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image10\",\"image\":\"x\"}>ET")); r_flag1 = 0; cha_hang3++; cha_lie3++; cha_youxia++; Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button9\",\"enable\":false}>ET")); } break; case 48: r_flag1 = 0; quan_hang1=quan_hang2=quan_hang3=cha_hang1=cha_hang2=cha_hang3=0; quan_lie1=quan_lie2=quan_lie3=cha_lie1=cha_lie2=cha_lie3=0; quan_zuoxia=quan_youxia=cha_zuoxia=cha_youxia=0; // for(char count_i=50;count_i<58;count_i++) // { // Serial.println((("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image%c\",\"image\":\"bai\"}>ET"),count_i)); // } Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image2\",\"image\":\"bai\"}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image3\",\"image\":\"bai\"}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image4\",\"image\":\"bai\"}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image5\",\"image\":\"bai\"}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image6\",\"image\":\"bai\"}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image7\",\"image\":\"bai\"}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image8\",\"image\":\"bai\"}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image9\",\"image\":\"bai\"}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image10\",\"image\":\"bai\"}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif4\",\"visible\":false}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif5\",\"visible\":false}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif6\",\"visible\":false}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif7\",\"visible\":false}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif8\",\"visible\":false}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif9\",\"visible\":false}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif10\",\"visible\":false}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif11\",\"visible\":false}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button9\",\"enable\":true}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button8\",\"enable\":true}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button7\",\"enable\":true}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button6\",\"enable\":true}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button5\",\"enable\":true}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button4\",\"enable\":true}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button3\",\"enable\":true}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button2\",\"enable\":true}>ET")); Serial.println(F("ST<{\"cmd_code\":\"set_enable\",\"type\":\"widget\",\"widget\":\"button1\",\"enable\":true}>ET")); break; } if((quan_hang1==3)||(cha_hang1==3)) { Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif4\",\"visible\":true}>ET")); } else if((quan_hang2==3)||(cha_hang2==3)) { Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif5\",\"visible\":true}>ET")); } else if((quan_hang3==3)||(cha_hang3==3)) { Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif6\",\"visible\":true}>ET")); } else if((quan_lie1==3)||(cha_lie1==3)) { Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif7\",\"visible\":true}>ET")); } else if((quan_lie2==3)||(cha_lie2==3)) { Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif8\",\"visible\":true}>ET")); } else if((quan_lie3==3)||(cha_lie3==3)) { Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif9\",\"visible\":true}>ET")); } else if((quan_zuoxia==3)||(cha_zuoxia==3)) { Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif11\",\"visible\":true}>ET")); } else if((quan_youxia==3)||(cha_youxia==3)) { Serial.println(F("ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif10\",\"visible\":true}>ET")); } } } Здесь будет приложен демонстрационный видеоролик проекта.
  5. Мне нужно сделать структурную схему по вот такой электрической схеме для дипломного проекта. Это примочка дилея на основе ардуио нано. Сам я в электронике совсем не сведущ, выбрал такой проект только из-за программирования самой ардуины.
  6. В видео поговорим об энергоэффективности микроконтроллеров. Сравним потребление в режима сна arduino, blue pill с STM32F103 и представителя новой линейки энергоэффективных микроконтроллеров от st — STM32L552. Подробную информацию об линейке L5 можно найти тут: https://www.compel.ru/lib/143383 Пи тест часть 1: https://youtu.be/ozu1IUjH1_Q Пи тест часть 2: https://youtu.be/uLOWYE-JJpA
  7. У меня есть ESP32Cam которая берет кадры (240*176пкс. QQVGA) и пересылает их серверу по UDP. С этой частью проекта проблем нет всё работает всё ОК. Но хочу прикрутить получение данных по UDP от того же сервера причем с достаточно приличной частотой. Кто пробовал работать с такими модулями, не подскажете не будет и помехой работа с камерой, работе с сервером по UDP-протоколу. У меня есть сомнения по поводу того не будет ли эспешка в момент взятия кадра зацикливаеся на этом и в этот момент не сможет принять сообщения от сервера и управлять периферией. Подскажите пожалуйста кто может т.к. работаю с этими камнями впервые. Заранее спасибо.
  8. Добрый день! В данный момент прохожу производственную преддипломную практику (сам учусь в УРТК). Стоит задача соединить Lego EV3 и Raspberry PI по I2C интерфейсу. До этого, при работе с другими устройствами, у меня никогда не было проблем с I2C интерфейсом, но в данной связке "EV3-RPI" - начались ошибки. Перед описанием ошибок, уточню, что EV3 - Master, а Raspberry - Slave, т.к. EV3 умеет работать только в режиме Master. Первое, что бросается в глаза, это практически постоянная передача в эфир SLA пакета (адреса Slave-устройства). По-факту, именно с этого и должна начинаться передача, но в данном случае, её попросту не происходит. А, если быть точнее, то происходит она только каждый шестой раз. Следующая проблема заключается в том, что обмен данными не всегда происходит до конца. Даже если EV3 отправляет свой пакет (два байта), то ответ от Raspberry (он тоже два байта) приходит через-раз, а то и ещё реже. я также пробовал соединять EV3 с Arduino, Arduino с Raspberry, что бы найти причину, но там всё отлично работало и ошибок было ноль. Стабильный обмен двумя байтами, как и нужно. Очень нужна помощь в устранении данных ошибок! P.S: У EV3 используется нестандартный уровень лог. единицы (там он 4.3в) и обычные конверторы уровней уже не работают с ним. Поэтому, мне пришлось перепаивать его под другие номиналы подтягивающих резисторов, что бы всё заработало. В его работе нареканий нет. Ниже показаны осциллограммы работы I2C между различными устройствами, которые были задействованы.
  9. Здравствуйте. Мои знания в электронике малы, но мне необходимо подружить датчик давления и модуль тока и напряжения, если это возможно. Итак, есть датчик дифференциального давления NPH-8-172DH и модуль тока и напряжения CJMCU-219 для Arduino . Если я правильно понял то датчик отдаёт два сигнал нала в mV. Пины 5, 6 вход отдают данный по давлению на входе, пины 4, 10 по давлению на выходе. Возможно ли измерить сигнал датчика модулем CJMCU-219? Какое должно на датчик подаваться напряжение и какой должен быть ток? Как правильно подключить датчик и модуль дуг у дугу правильно?
  10. Доброго времени суток. Не смог реализовать повторный Serial.available() внутри условия Serial.available. Может кто-то уже сталкивался с этим. Задача состоит в том, что нужно зажечь светодиодные ленты WS2812b. Алгоритм действий: 1) Ожидаем появления данных на входе serial с помощью if (Serial.available()){} 2) Принимаем значения int val=Serial.paresInt(); 3)Условие сравнивания if(val>123){chess=val;} esle if(val<124){color=val;} т.е номер светодиода это chess, цвет это color 4) На смартфон отправляем 'n', для разрешения отправки следующих данных 5)Ждем уже цвет светодиода на входе serial далее по предыдущему алгоритму 6)Зажигаем указанный светодиод на указанный цвет. #include <FastLED.h> #define LED_PIN 6 #define NUM_LEDS 123 CRGB leds[NUM_LEDS]; const unsigned int DIM1 = 123; const unsigned int DIM2 = 1; const unsigned int DIM3 = 3; int ary[DIM1][DIM2][DIM3]; void setup() { Serial.begin(9600); FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS); } void loop() { if(Serial.available()){ int val=Serial.parseInt(); int chess=val; Serial.println(chess); delay(1); Serial.println('n'); clear_serail(); if(Serial.available()){int color=Serial.parseInt(); Serial.println(color); if(color>0){ if(color==124){ ary[chess][1][1]=0; ary[chess][1][2]=255; ary[chess][1][3]=0; Serial.println(ary[chess][1][1]); Serial.println(ary[chess][1][2]); Serial.println(ary[chess][1][3]); leds[chess]=CRGB(ary[chess][1][1],ary[chess][1][2],ary[chess][1][3]); FastLED.show(); Serial.println('l'); clear_serail(); } if(color==125){ ary[chess][1][1]=255; ary[chess][1][2]=0; ary[chess][1][3]=0; leds[chess]=CRGB(ary[chess][1][1],ary[chess][1][2],ary[chess][1][3]); FastLED.show(); Serial.println('l'); clear_serail(); }}} } } void clear_serail(){ Serial.end(); Serial.begin(9600); }
  11. Компания производитель вендинговых автоматов для розлива питьевой воды в поисках инженера-системотехника/инженера электронщика. График 5/2 с 9 до 18, здесь удаленный формат не рассматриваем. Место работы – г. Екатеринбург. Мы ищем специалиста, который будет делать прототипы нового для контроллера, курировать производство, проверять, дорабатывать, перепаивать, а также: Переписывать текущие программы на С++; Создавать программу для Android для конфигурации параметров контроллера через bluetooth. (т.е. предлагать новые, современные идеи и подходы для развития имеющихся контроллеров, которыми вы владеете); Предлагать новые программные продукты, среды разработки. Будет в тренде мира микроэлектроники, китайского контрактного производства. Может предложить совершенно новую реализацию наших текущих задач, чтобы это было лучше и эффективнее. В идеале, нам нужен специалист, который имеет: Опыт программирования микроконтроллеров Atmega, STM32, ESP32; Опыт работы в Altium Designer; Опыт работы в c++ (IAR, QT); Опыт работы с modbus, rs485/232, SPI. Готовы рассматривать специалистов с разным опытом, поэтому пишите, задавайте вопросы. Резюме можно отправить на почту lb@ktekt.ru (да, мы кадровое агентство), позвонить можно по следующему тел. 89068001212 - Любовь.
  12. В видео протестируем плату Nucleo G474RE и проверим насколько она быстрее Arduino Uno. Текстовый вариант инструкции, как превратить отладочную плату STM в Arduino: https://www.compel.ru/lib/132248 Плата Nucleo-G474RE: https://www.electronshik.ru/item/ST/NUCLEO-G474RE Arduino Uno: https://www.electronshik.ru/item/ARDUINO/ARDUINO%20UNO%20REV3 Репозиторий проекта stm32duino: https://github.com/stm32duino/Arduino_Core_STM32 Репозиторий benchmark’а: https://github.com/PaulStoffregen/CoreMark Пи тест, вторая часть: https://youtu.be/uLOWYE-JJpA Пи тест, первая часть: https://youtu.be/ozu1IUjH1_Q Платы XNucleo: https://www.st.com/content/st_com/en/search.html#q=xnucleo-t=tools-page=1
  13. Потребовалась в проекте простая и долгоживущая память для вобщем- то небольшого количества данных, на случай сбоя по питанию. Работа ограничивалась записью текущих изменяющихся значений и восстановлением при включении. При неспешной записи несколько раз в минуту, ресурс ATMEGA328 выбирался за 2 года гарантированной записи её родной EEPROM, происходившей по кольцу, что не очень радовало. Отступление небольшое, в нете читал статью где этот чип подвергался повышенным напряжением в 7- 9В и при снижении опять начинал работать, так это правда, случайно проверил. Ещё тестили количество циклов чтения- записи, реально намного превышает количество заявленное производителем, но у меня не тот случай где можно на это надеяться. Присутствовал на борту модуль с Алиекспресса с DS3231, на нём имелась память 24С32. Ввиду чрезвычайного удобства (модуль два в одном, и часы и память, общая шина IIC/TWI) эта микросхема использовалась для вышеуказанных целей очень долгое время. А потом всё устройство обрастало свистелками- перделками многочисленными датчиками и подвергалось давлению перфекционизма. Времени для записи, по даташиту 10ms, стало слишком много и в обрез оставалось для основной работы программы. Я посмотрел в сторону FRAM. Были заказаны на том же Али FM24С64 и 04. Частота работы до 1 Мгц, выпускаются в вариантах 5 и 3,3В, объёма, учитывая количество циклов записи- чтения 10 в 12-й степени хватало. Перепробовав безуспешно адаптировать несколько библиотек, для обычных 24СХХ, решил написать подпрограммы, напрямую работая со встроенной библиотекой Wire Arduino IDE (https://www.arduino.cc/en/Reference/Wire). Этими скетчами проверял присланные микросхемы. Для FM24C04: #include <Wire.h> byte iich = 0x50;// адрес устройства unsigned int address = 0; byte datawrite = 0x77;// чем заполнить ячейки памяти void setup() { Serial.begin(115200); Wire.begin(); Wire.setClock (400000);// скорость шины, от 3,3В через конвертер уровней TXS0108 тоже работают for (address = 0; address < 512; address ++ ) { // цикл для записи в память iic_write (address, datawrite); } for (address = 0; address < 512; address ++ ) { // цикл для чтения из памяти Serial.println (); Serial.print (address); Serial.print ("--"); Serial.print (iic_read (address),HEX); Serial.print ("--"); } } ///////////////////////////////////////////////////// void loop() { } ///////////////////////////////////////////////////// unsigned int iic_read (unsigned int adrd) { Wire.beginTransmission(iich); Wire.write(adrd); Wire.requestFrom(iich, 1); return Wire.read(); Wire.endTransmission(); } void iic_write ( unsigned int adwr, byte dat) { Wire.beginTransmission(iich); Wire.write(adwr); Wire.write(dat); Wire.endTransmission(); } Для FM24С64 меня ждали несколько шикарных, испытанных временем граблей. Перерыт инет, перечитан даташит. Внутренний подтягивающий к земле резистор internally pulled down достаточно велик для уровня наводки, воспринимаемой как логический "0" или "1". Поэтому вывод WP- обязательно к земле наикратчайшим проводом, тем более если это "сопли" на разъёмах на столе. То- же о выводах А0-А2, висящие в воздухе они давали несколько несуществующих адресов. Почему- то это не касается FM24C04 и я попался на этом чипе. Подпрограммы изменились, для чтения: unsigned int iic_read (unsigned int adrd) { Wire.beginTransmission(iich); Wire.write(adrd >> 8);// старший байт Wire.write(adrd & 0xFF);//младший байт Wire.requestFrom(iich, 1); if (Wire.available()) { return Wire.read(); } Wire.endTransmission(); } для записи: void iic_write ( unsigned int adwr, byte dat) { Wire.beginTransmission(iich); Wire.write(adwr >> 8); Wire.write(adwr & 0xFF); Wire.write(dat); Wire.endTransmission(); } Работа 5В версии (FM24C64-G) при питании 3,3В и скорости шины 400000 стабильна, что рекомендовать к работе конечно нельзя. По поводу FM24C64 (подозреваю что и С32 , С128, С256) коротко и ясно написано на https://forum.arduino.cc/index.php?topic=18946.0 пользователь alicemirror объясняет как работает чтение у этих микросхем, а поскольку они прямая замена для, например, АТ24С64, то и для них это справедливо. Дело в том, что данные из микросхемы "выстреливаются" далее без указания адреса с его автоинкрементом самой микросхемой после подтверждения от ведущего. Эту прыть и надо останавливать при получении байта :-) и способ адресации отличается от младших, с меньшим объёмом. Интересных всем проектов!
  14. Есть у меня два блока питания один на 35kV второй на 65kV, у обоих присутствует порт аналогового программирования 0-10 v (смотрите прикрепленный мануал ), я ищу умельца который сможет выполнить описанную ниже задачу. возможно есть уже готовое решение ? Задача состоит из двух частей Железо которое должно подключатся с одной стороны к блоку питания FUG(мануал во вложении ) выдавая от 0-10V , а с другой стороны к ПК через юсб Программа , в которой будет возможно калибровать выходное напряжение блока питания в зависимости от подключенного БП, возможность повышать/понижать напряжение постепенно , таймер на выключение/ включение блока питания . Analog_programming.pdf
  15. Доброго времени суток. Есть ли здесь знатоки, кто мог бы на пальцах объяснить работу минут в часах с видео? а еще лучше подсказать, где можно найти схему и код на подобное. (Имеются часы: плоская дощечка длинною в 30см на которой зажигаются минуты. То есть нужна схема, при которой индикаторы зажигаются поочередно.) Я в этом деле полный профан и начал копаться в "ардуинах" с неделю назад. Если я правильно понимаю можно получить данный эффект с помощью часов реального времени (например DS 3231) подключенных к arduino и 60 светодиодов подключенных через сдвиговые резисторы плюс, разумеется, должен быть будильник и кнопки которые этим всем оркестром будут управлять, так? Реально ли найти готовые схему подключения и сам код работы подобных часов? PS: Если кто даст буду крайне благодарен (мало ли у кого-то завалялось). lineclock1.mp4
  16. Добрый день, уважаемые знатоки, обращаюсь за помощью, поскольку сам уже в отчаянии найти причину, просто бьюсь головой об стену проект у меня предельно простой: беспроводной термометр с дисплеем на Arduino Для беспроводной передачи использовал имеющиеся дешевые модули на частоте 434 MhZ (https://www.sparkfun.com/products/10532, https://www.sparkfun.com/products/retired/8946) Схема работы следующая: передатчик забирает показания температуры с 2х датчиков и передает их раз в 5 минут приемник ловит и выводит показания на 2 7-сегментных дисплея, драйвером для которых используется MAX-7219 Проблема следующая: включаю приемник и передатчик, пока дисплеи не работают, первый прием показаний происходит без проблем, на большой дистанции Когда начинают работать дисплеи, дальность приёма ЗНАЧИТЕЛЬНО сокращается, т.е. на той необходимой дистанции, на которой сработал первый прием, второй и последующие уже не проходят. При этом, если расположить устройства поблизости, прием нормально работает и обновляет значения на дисплеях. В чем может быть проблема? В недостаточной мощности питания? Но у меня БП на 500ма, и я запитал приемник напрямую от разъема питания (5в). Возможно, я упускаю что-то очевидное для более опытных радиолюбителей? Если необходима схема, я выложу Очень прошу помочь, у меня уже опускаются руки, а ведь я уже перевел всю схему на печатную плату и запаял, жалко выбрасывать проект, в который вложено так много усилий
  17. Доброй ночи, уважаемые. Прошу Вашего совета по следующей куче проблем для меня, т.к. не соображаю в электронике, схемах, резисторах и подобному, но дружу с компом и есть желание сделать определенный механизм, но пока нет наставления на путь истинный от специалистов) Задача состоит в следующем - хочу мотор стеклоочистителя подключить к Ардуино, но управлять им необходимо с кнопки. Шилд, например, который обрабатывает сигнал нажатия на кнопку (допустим кнопка записи), при ее активации, нажимаю на другую кнопку, которая дает команду движку вращаться по часовой стрелке. Отпускают ее, моторчик останавливается. Другая кнопка, вращение в противоположную сторону. Т.е. записал последовательность и продолжительность вращений, нажимаю вновь на кнопку запись и мои действия сохраняются. Далее на 4 кнопку жму и моя игра с моторчиком автоматически воспроизводится. Если такое выполнимо с помощью плат и шилдов без доп программирования логики, то буду ОЧЕНЬ признателен если расскажете как вкратце это осуществить или кинете ссылки к примеру на Али с нужными товарами. Если легковыполнимо, то в будущем наверное уже разберусь, как обойтись без нажатия на 4 кнопку (воспроизведения записанных действий) и запускать этот процесс, подключив датчик движения или звука. Если необходимо описывать логику или создавать типа какого-то протокола, что шилд (?) умел понимать, что я от него хочу, то подскажите среду разработки для неба, что б там по минимуму было наворотов) В принципе с основами c++ для Ардуино скорее всего придется ознакомиться. Заранее спасибо!
  18. Доброго времени суток, уважаемые! Собираю реле на оптопара с симисторным выходом moc3063 и семисторе bt136-600e. В оригинальной схеме используется вместо bt136, bt138 но такого семистора под рукой нет. (оригинальная схема во вложении) Помогите пожалуйста понять, как нужно расчитывать сопротивления от оптопары идущие к семистору. С сопротивлениями указанными в схеме bt136 не открывается.
  19. Добрый день всем! Собрал 3 фазный плавный пуск на модулях ssr-40 и ардуино ,заменил на них mov3063 на moc3051 иначе не работало, программу накидал для ардуино, вобщем управляю ими широкой пачкой импульсов от от угла открытия до перехода через ноль , ШИМ программный от таймера 40 МКС 50 процентов заполнение в итоге, не слишком ли быстрый ШИМ ? Успевает ли за ним светодиод оптрона ? В даташите не нашел скорость переключения, ШИМ использую т.к. Индуктивная нагрузка ,и когда мотор набирает обороты при дальнейшем уменьшении угла его трясет, под нагрузкой этого нет все ровно, обошел это программно 255 максимальный угол ,от130 у.е угла разгон в течение 5 у.е. дальше 2-3 секунд , далее быстрым темпом сокращение угла и таким образом , плавный пуск.. Может с нормальной частотой ШИМ не надо будет этой части кода, ???
  20. Изучаю электронику как хобби. Сейчас имею на руках самодельную машинку на радиоуправлении. Электронная начинка выглядит как монстр Франкенштейна, управлением мотора занимается китайский клон odrive, связью модуль подсоединенный к Raspberry Pi (он же пользуется и как связующее звено для остальных модулей), различная периферия(экранчик, лампочки, руль, куча датчиков и сенсоров) в общей сложности подключены к двум ардуинкам и трём stm32f103. Такой зоопарк следствие того что изначально это всё были разные эксперименты, а сейчас хочу объединить весь свой опыт в одном проекте. Всё это было пробным макетом, теперь же надо привести к красоте. Так как я уже давно хотел изучить Altium Designer собираюсь воссоздать машинку на самодельной плате. И тут у меня начался затуп: а как делать правильно? Сделать одну большую плату на одном мощном контроллере (stm32f407 к примеру), или же для каждой периферии отдельный модуль на слабом контроллере. Собственно вопрос к профессионалам, есть ли какой-то свод правил как проектировать сложные устройства, или какого принципа рекомендуется придерживаться?
  21. Здравствуйте, если кто-то знает, подскажите, пожалуйста, какой мосфет(Q3) можно использовать. Еще интересует по каким критериям они подбираються и где это можно сделать(тобишь сайт на котором можно указать нужные параметры/или это как-то по другому подбирается?). На счет импульсов генерируемых Arduino Uno на микропроцесоре ATmega328P. Частота в даном примере(вообще она будет перед стартом задаваться в пределах 1-50Гц) 50Гц, период 0,02с, duty cycle 50%. Еще такой вопрос, подскажите, пожалуйста, нормальный ли характер графика D на осцилографе? Почему он именно такой, если не нормальный, то что исправить? Если нужна дополнительная информацыя, без проблем, в мерах своих возможностей, добавлю. За любую помощь зарание спасибо.
  22. Здравствуйте , возникла серьезная необходимость переделать коляску с блоком управления VR2. под управление через смартфон как на детских машинках. кто может реализовать такую схему, готов заплатить, ребенок инвалид не может пользоватся штатным джойстиком
  23. в крацце. я спалил (не факт что умерли. не знаю как проверить) 4 разных транзистора. причина этой писанины. я не смог запустить мосфеты. делал все по схеме. все резисторы. даже диод ставил ибо нагрузка это 2амперный двигатель. подавал шим через ардуино. с разными частотами. не работает НИЧЕГО. я уже купил модуль где точно все распаяно как надо. не работает. он открыт все время. на на всю силу открыт. поставил диод. все равно не управляется ардуиной. код простейший (воид сетап:пинмод(5 аутпут); аналогврайт(5, 255)). но. когда я попровал с другой частотой void setup() { // ШИМ 8 разрядов, 62,5 кГц TCCR1A = TCCR1A & 0xe0 | 1; TCCR1B = TCCR1B & 0xe0 | 0x09; pinMode(5, OUTPUT); analogWrite(5, 0; // на выводе 9 ШИМ=10% } void loop(){ } двигатель начал пищать. я надеюсь мосфет не пробило 5 ампер от аккумулятора когда я пытался грубо его включить. а еще я делал уже без резисторв но на крутом каком то мосфете. у которого порог открытия затвора больше ноля(вольт) ирлб какойто. смотрел видео алекса гавера (заметки ардуинщика) я реально не знаю что уже делать. руки опускаются, а модель самолета и сервопривод с аппаратурой ждут. доп фото скину по надобностью (не спрашивайте почему я такой глуп и не знаю как запустить элементарный мосфет. мне 15. если поможете, куплю шоколадку)
  24. Доброго времени суток. Идея Довольно давно у меня появилась идея сделать во дворе подсветку (именно подсветку, не освещение) дорожек с учетом максимальной экономии электричества. Экономию электричества, по моим прикидкам, я бы мог обеспечить за счет работы конечных потребителей в режиме, скажем, 10-20% от их мощности. В случае, когда кто-то пришел домой, т.е. сработал какой-то из датчиков движения, либо препятствия, по заранее заданному алгоритму потребители выдают 100% мощности в течении заданного времени, после чего возвращаются обратно к тусклому свету. По моему мнению я буду иметь возможность не в полной тьме дойти до двери дома, а также территория будет аккуратно, не броско, подсвечена в момент, когда потребители работают в режиме экономии. Кроме того, есть идея связать это все с приложением в телефоне, с возможностью настройки этого всего действа, а так же переключения всевозможных режимов при желании. Отсюда выросла необходимость использовать что-то вроде Arduino, либо nodemcu. Идея реализации Возможно более опытные пользователи меня поправят, но вот как я решил реализовать этот проект. Т.к. провода между лампами будут находиться в земле, решено было использовать слаботочку, во избежание нежелательных сюрпризов. Питание всей этой схемы будет располагаться где-то в доме, через некий БП я получу из 220 AC необходимый мне 24 DC, после чего, будет запитано N потребителей параллельно. На данный момент я не знаю сколько точно потребителей мне необходимо, т.к. точное число я планировал вывести после тестов "в бою", но пусть будет не более 20. На тестовый период - 5. Я начал поиск LED Dimmable ламп и заказ для теста два варианта РАЗ, ДВА. Лампы я решил монтировать в копеечные столбики IKEA/Леруа/(другой магазин), которые изначально идут в виде втыкающихся в землю грибков для сада, работающих на аккумуляторе, который заряжается от солнечной батареи. Т.к. эти столбики довольно копеечные, я мог бы выбросить их электронное содержимое, соединить их через ножки под землей, а на место ламп установить что-то, что мне подходило бы. Со одной стороны, это не бросалось бы в глаза днем, практически не мешалось, а ночью помогало комфортно передвигаться. К данному посту я прикрепил рисунок от руки для лучшего (надеюсь) понимания схемы. (схемы рисовать как видно умею не очень) Если есть идеи по реализации - я буду рад! Вопросы Здесь начинается самое интересное. Если взаимодействие с ардуиной, мобильным приложением и т.п. мне довольно понятно, т.к. я имею опыт программирования и разработки, то вот в плане электроники - печаль. У меня есть базовые знания электроники, но их к сожалению не достаточно, чтобы понять куда двигаться. Из того, что я смог прочесть в интернетах, я понял что многое зависит от самой лампы, а точнее ее контроллера. Но о лампах которые я заказал я знаю только то, что у них стоит пометка Dimmable на алишке и что в теории они должны управляться ШИМом, но я в этом не уверен.... На всякий случай я прикреплю фото одной из них.... Хотелось бы помощи и совета в сборке диммера, который смог бы контролировать в паре с ардуинкой весь этот зоопарк. Я видел уже кучу реализаций, на таймерах разных и других микросхемах, но ввиду отсутствия опыта я понятия не имею что мне стоит использовать и что будет лучше. Кроме того, я еще думал о замене ламп на трех ватные смд светодиоды, но проблема все так же, нет понимания как лучше это все собирать. Заранее спасибо!
  25. Доброго времени суток, форумчане. У меня мало опыта в микроэлектронике, прошу знающих помочь и подсказать? Идея сделать из обычных весов, wi-fi IP весы по аналогу CAS для подключения с торговому оборудованию по средствам локальной сети. За базу взял весы ГАРАНТ ВПС-40М http://www.datasheet-pdf.com/PDF/SDI5209T-Datasheet-SOLIDIC-1238977 Подключение к локальной сети через Wi-Fi пытаюсь реализовать при помощи платформы NodeMCU на основе модуля ESP8266 (аналог Arduino c модулем wifi) Проблем с подключением по WiFi к торговому оборудованию (выбираю модель IP весы производства CAS) не возникло, программа получает вес который я указываю. Не могу разобраться как получить нужный сигна (сам вес от весом) от контроллера SDI5209T. На сколько я понял он использует интерфейс I2C на ножках 3 и 5. (опыта в работе с I2C еще не было) Подключаю его к NodeMCU (ножки GPIO 0, GPIO 4 - напряжения просто включаю весы), запускаю скетч сканера I2C портов https://www.instructables.com/id/ESP8266-I2C-PORT-and-Address-Scanner/ и каждый раз получает разные адреса устройств по 26 по 4, 5 и т.д. т.е. Помогите, может советом, как мне словить сигнал веса с данного контроллера?
×
×
  • Create New...