Jump to content
al_gavr

Измеритель Ёмкости Аккумуляторов (Li-Ion/nimh/nicd/pb)

Recommended Posts

переделал скетч по LCD с I2C (подключение по 4 проводам) и печатную плату Shild для Arduino UNO, может быть кому то пригодится:

Подскажите какой транзистор применить, применил КТ819Г но он сильно греется, c радиатором до 50 градусов.

Скетч для LCD I2C.txt

Измеритель Ёмкости Аккумуляторов.lay6

post-183050-0-33074900-1412384227_thumb.png

Edited by RFSlab

Share this post


Link to post
Share on other sites

на биполярах будет большее падение напряжения

по этому только МОП

- для экспиременту пойдёт любой (с учётом проводимости) из схемы инверторов от старых бесперебойников

П.С.

схема нарисована не правильно!!!

в таком включении транзистора - она не рабочая.

Edited by lazertok

С Уважением

Если дело завершено, Человек должен усомниться. (закон Дао Ли)

Share this post


Link to post
Share on other sites

IRF540 пойдет или лучше взять IRF3205? И еще, я что то вообще запутался (не ругайте сильно, я только начинаю в этом разбираться) резистор вешается на Gate или на Source?

Самое интересное, что при подключении как я указал в предыдущем воем сообщении проходят все замеры и нормально определяется тип аккумулятора.

Edited by RFSlab

Share this post


Link to post
Share on other sites

Популярные пружинные клеммники Degson со склада Компэл

Пружинные разъемные клеммники Degson с технологией Push-In обеспечивают надежное и безопасное электрическое соединение. При их использовании исключается возможность короткого замыкания в точке контакта, что гарантирует надежное соединение. Электрическая безопасность клеммных блоков подтверждается соответствием мировым стандартам UL, IEC и VDE.
Подробнее

Guest STA4RD

Всем привет)

Кто подскажет есть ли смысл ставить больше или меньше нагрузочный резистор?

К примеру имеется коробка резисторов 1,6 Ом 0,5 Вт.

Я понимаю что нагрузка увеличится, но как скажется это на аккумуляторах?

Share this post


Link to post
Share on other sites

Приглашаем на вебинар "Как сделать эффективную антенну для устройств IoT. Решения Quectel" (29.07.2021)

Вебинар посвящен проектированию и интеграции встроенных и внешних антенн Quectel для сотовых модемов, устройств навигации и передачи данных 2,4 ГГц. На вебинаре вы познакомитесь с продуктовой линейкой и способами решения проблем проектирования. В программе: выбор типа антенны; ключевые проблемы, влияющие на эффективность работы антенны; требования к сертификации ОТА; практическое измерение параметров антенн.

Подробнее

Решения TE Connectivity для 112 Gbps архитектуры и серверов. Перспективные решения для серверов и дата-центров

В статье дается полный обзор серий высокоскоростных разъемов IMPACT и Z-PACK, соединителей SFP- QSFP и Mini-SAS, а также разъемов и кабельных сборок для организации питания. Раскрываются преимущества и отличительные особенности данных серий высокоскоростных разъемов и области их применения.
Подробнее

Кто подскажет есть ли смысл ставить больше или меньше нагрузочный резистор?

Самое простое представление любого аккумулятора в электротехнике - это идеальный источник напряжения и последовательное сопротивление, которое представляет внутреннее сопротивление аккумулятора. Нагрузочный резистор замыкает эту цепь. При большем токе, например, на внутреннем сопротивление падает большее напряжение. Вследствие этого, что бы разрядить аккумулятор полностью, нужно уменьшить напряжение по которому произойдёт отключение нагрузки.

К примеру имеется коробка резисторов 1,6 Ом 0,5 Вт.

Я понимаю что нагрузка увеличится, но как скажется это на аккумуляторах?

Возможен нагрев аккумулятора. Температуры выше 40 градусов сокращают срок службы, но для единичного теста это, по сути, не имеет значения.

Что бы не вносить изменения в прошивку, можно собрать нагрузку из пяти 1,6 Ом сопротивлений: нужно соединить параллельно две последовательные цепочки из 2х и 3х сопротивлений. получится примерно 2,0 Ом. Это как пример.

И скажите, зачем соединен "-" АКБ с GND Arduino?

Ардуино измеряет напряжения относительно GND.

Share this post


Link to post
Share on other sites

Спасибо, в этом всем я уже разобрался, только не могу понять, в 85 строке

  TotalCurrent=TotalCurrent+MillisPassed/1000*(BatVoltage-FetVoltage)/2.2/3.6;

что за 3,6?

Share this post


Link to post
Share on other sites

Еще раз спасибо, понял.

Я так понимаю вместо 2,2 нужно ставить нагрузочное сопротивление, так?

Share this post


Link to post
Share on other sites

Я так понимаю вместо 2,2 нужно ставить нагрузочное сопротивление, так?

Да.

Вообще рекомендую проверить нагрузочное сопротивление на каком-нибудь точном приборе и вписать туда это значение.

Так же важно измерить напряжение, которое у вас будет на V_IN-пине на ардуино. И везде где автор пишет 4.887 заменить на ваше V_in/1,024.

Или ещё лучше: собрать источник опорного напряжения на TL431, с помощью резистивного делителя получить, скажем 4,5 В.

Добавить в setup() функцию вначале строчку:

analogReference(EXTERNAL)

Здесь эта функция подробно расписана, обязательно прочитать и понять, если будете это реализовывать.

Потом подключить источник опорного напряжения на AREF-пин ардуино. И соответственно заменить в прошивке 4.887 на 4,5/1,024.

Точность измерений значительно улучшится.

Edited by ArkadiyAV

Share this post


Link to post
Share on other sites

Еще хотелось бы больше узнать про выбор ополного напряжения.

Почему 4,5в?

Я где-то вычитал что нельзя изменить напряжение больше опорного, это правда?

Share this post


Link to post
Share on other sites

Почему 4,5в?

Если разряжать не только NiMH и NiCd аккумуляторы а ещё и Li-Ion, то нужно напряжение выше 4,2В. На плате есть 5В от распаянного на плате стабилизатора, но от этого напряжение питается всё и различные помехи на 5В линии заметны уже при использовании 10-битного преобразователя. Поэтому напряжение 4,5В является в данном конкретном случае хороши выбором. Кроме того, если не использовать TL431, то можно найти хороший точный и стабилитрон на это напряжение, которому не нужен резистивный делитель. Но это уже тут абсолютно излишне.

Я где-то вычитал что нельзя изменить напряжение больше опорного, это правда?

Измерить?

Нет, нельзя. Всё что выше опорного напряжения преобразователь будет показывать как максимальное значение, в данном случае 1023.

Share this post


Link to post
Share on other sites

Здравствуйте.

Я с ардуино даже не на Вы. Но возникла потребность в тестировании ячеек большой емкости - 20 а.ч. Ячейки литий-полимерные и литий-железо-фосфатные. Так вот беда в том, что мне нужен ток разряда 20 ампер и нужно составлять график напряжения, тока и емкости. Можно переделать данную схему под мои потребности? Ардуино мега я уже приобрел. Напряжение ячеек 3.7 и 3.2 v. Для нагрузки собираюсь использовать сборки из резисторов 0.1 ом - 10 ВТ. Выдержит ли моп из данной схемы?

Очень надеюсь на помощь.

Спасибо.

Edited by Ruders

Share this post


Link to post
Share on other sites

Работает ли у кого данная схема? может кто захотел усовершенствовать?

я собрал, в принцепи работает, за точность пока не могу сказать. но напр. на экране показывает точно.

использую ардуино про мини,

подключал:

мосфет к 13 пину (светик) (советуют к пину TX подключить, завтра попробую)

ток к А2

и напр к А0

сопротивление поставил на 5.0 Ома, (предварительно измерив его сопротивление)в строке кода TotalCurrent=TotalCurrent+MillisPassed/1000*(BatVoltage-FetVoltage)/5.0/3.6; заменил.

вопрос в точности измерения ёмкости? какова она?

замерял ток разряда, литий 600мА

никель 20-30мА.

ещё хотелось бы:

сделать если возможно опорное ардуино про мини подключить (изменения в коде надо сделать) щас я сделал стабильным напр. питания . оно у меня 4.96в

сделал коректировку в коде заменил 4.887 на 4.965

второе ввести время разряда какое то (видел код где то, что ардуина считает секунды с момента включения .

и самое главное, переделать на измерение двух акб лития тоесть напр. 8.4в

вывел на экран жк уже показания не в мВ а Вольтах, удобнее так.


JID 777Andrej@jabber.ru

Share this post


Link to post
Share on other sites
доработанный, звуковая сигнализация окончания разряда, время разряда.

JID 777Andrej@jabber.ru

Share this post


Link to post
Share on other sites

http://visualbooster...24152351670.png ардуино про мини. фото что куда подключать. в скетче подписано.

в планах сделать подкл и откл зарядного после разряда акб. если кто поможет доделать.

zaradka_vrema_vr_2.ino

Edited by 777andrej

JID 777Andrej@jabber.ru

Share this post


Link to post
Share on other sites

Хороший у тебя измеритель получился.

какой мосфет применил? чем питаешь ардуину? зачем в измерителе стрелочный индикатор? мосфет при замерах не греется?

Share this post


Link to post
Share on other sites
вопрос в точности измерения ёмкости? какова она?

зависит от точности отсчета времени и точности измерения тока

ну и от округления при расчетах в коде


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

мосфет любой с малым сопрт канала.

питания ардуины от стаб (хороший стаб 5в) по тому как опорное завязано на нём. (потом планирую сделать на 431 опорное.)

стрелка, то так, показывает ток через акб. (по большему счету не нужна :)

мосфет холодный. резистор стоит 10ватт, чуть теплый.

точность довольнотаки хорошая. ибо время за час измерений не очень уйдёт, второе, сопротивление резистора замерил.

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

корпус, из видеокассеты :)

Edited by 777andrej

JID 777Andrej@jabber.ru

Share this post


Link to post
Share on other sites

я тут буквально недельку назад соорудил похожий приборчик. Поделюсь рецептом уменьшения ошибки интегрирования

значит вводные:

- ток измеряется с точным интервалом 1 мс

- 1А измеренного тока = 100 делений ацп (ну предположим так у меня настроена опорка)

создаем переменную uint32_t (можно 16_t в зависимости от параметров схемы. У меня просто измерения 12-разрядные и ток может быть 25А). Каждую милисекунду плюсуем туда показания из ацп. При токе 1А через 1000 циклов там должно накопиться 100000. Это на пальцах для понимания процесса. Интеграл станет равным 1 mAh тогда, когда значение переменной достигнет 360000. Заводим условие сравнения и как только значение этой переменной становится больше 360000 плюсуем в счетчик махов 1 мах и отнимаем от переменной эту константу. Остаток переходит на следующее интегрирование. Повторяем

Для своей системы требуется только пересчитать константу под масштабы и все

Ошибка метода сводится к нулю. Остаются только инструментальные ошибки (АЦП, время, смещение измерительного ОУ, дрейф схемы). Уменьшив эти ошибки можно увеличивать точность.

Edited by mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

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

ещё бы сделать измерение емкости лития с 8.4в две банки.


JID 777Andrej@jabber.ru

Share this post


Link to post
Share on other sites

в том то и дело - ток тут совершенно не важно какой. Он в любой момент может быть совершенно свой (хоть при каждом измерении), просто изменится предел интегрирования (автоматически) и все. Напряжение тоже абсолютно по барабану, хоть 8, хоть 128 вольт. Метод не имеет ошибки при любых достоверных входящих

Разберитесь повнимательнее в процессе и станет все ясно от чего и почему, и почему именно 360000

Edited by mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites
Guest Dmitry

не правильно показывает напряжение, вместо 1.09Вт показывает 1.165В ; вместо 4.1В показывает 4.395В. вопрос - можно ли где нить в коде поставить коэффициент 1.07(примерно), чтобы как то устаканить показания?

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Это да... детали конечно. Но люди говорят,  будто дьявол прячется именно в них.. Поэтому "слёзы" лучше убрать, т.к. мужику они не к лицу. Упоминание о "грязи" тоже лучше убрать, т.к. оно рисует, в воображении читателя, грязные, а потому не слишком романтичные городские пейзажи.
    • ну...это детали...
    • Немного нарушена последовательность событий... Мухи белого снега обычно садятся на окно после опадания листвы. Т.е. осень не может наступить после зимы. Лучше написать примерно так: Рассветы запоздалые, опавшая листва Глаза твои усталые, напрасные слова А дальше станет ветрено, тоскливо и темно И снега кучи белые навалит под окно
    • На Смоленском ЦБК знают толк в музыке!
    • Фото меандра и всей морды осциллографа (качественное) с положением ручек облегчило бы гадание....
    • ...я бы мог иногда говорить да какая в ж...культура... когда утром в 4 звонить, и кричать " я люблю тебя, дура!!!....." а потом-ты наутро проснёшься, только этого ты не забудешь. глянешь в зеркало-и ужаснёшься... Но собою однажды побудешь...
    • Говённый китайский кабель, с обрывом жилы внутри.
  • Similar Content

    • By Fordli
      Недавно я завершил проект по отпиранию двери с помощью сенсорного экрана с пронесенной картой.
      Как решить проблему, когда 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);  
    • By Fordli
      Я хочу построить простой шлюз с 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 порт, который я разработал сам, это правильно?
    • By Fordli
      Недавно я использовал Arduino для программирования stm32, и мне нужно использовать ШИМ-выход, но кажется, что частота фиксирована на 550 Гц.
      Я хотел бы знать, как изменить частоту ШИМ простым и легким способом.
      Например, я могу использовать analogWriteFreq(3000) для изменения частоты ШИМ на 3 КГц на ESP8266, но эта функция не работает на stm32. есть ли аналогичный метод для stm32?
    • By Fordli
      Я считаю, что знакомиться с новым продуктом, создавая игры, очень весело и нескучно, и именно поэтому я сделал этот проект.
      Этот проект заключается в использовании 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")); } } } Здесь будет приложен демонстрационный видеоролик проекта.
       
    • By Антон Палыч
      Мне нужно сделать структурную схему по вот такой электрической схеме для дипломного проекта. Это примочка дилея на основе ардуио нано. Сам я в электронике совсем не сведущ, выбрал такой проект только из-за программирования самой ардуины.

×
×
  • Create New...