Создание емкостного датчика жидкости: 8 шагов (с изображениями)
Создание емкостного датчика жидкости: 8 шагов (с изображениями)

Видео: Создание емкостного датчика жидкости: 8 шагов (с изображениями)

Видео: Создание емкостного датчика жидкости: 8 шагов (с изображениями)
Видео: Обзор программы ELCUT 12 Вихретоковый датчик 2025, Январь
Anonim

Емкостной жидкий спонсор основан на том факте, что емкость или заряд между двумя металлическими пластинами будет изменяться (в данном случае увеличиваться) в зависимости от того, какой материал находится между ними. Это позволяет создать датчик уровня, безопасный для использования с любой жидкостью, этот будет использоваться в багги с бензином (бензином). Одна пластина прикреплена к земле. Другой подключается к контакту 23. Между контактами 22 и 23 находится резистор 820 кОм. Датчик работает, заряжая конденсатор (бутылку с водой) и измеряя время, необходимое для прохождения через резистор.

Шаг 1: Детали

1. Макетная плата без пайки не требуется, но она значительно упрощает задачу, особенно если вы планируете добавить что-то другое позже. 2. Arduino, я использую мега Arduino, но на стандартном должно быть достаточно контактов. 3. Символьный ЖК-дисплей. 4. Некоторые мелочи, включая провод и резистор 1 МОм. 5. Компьютер, который вы используете для чтения моих инструкций. 6. Терпение.

Шаг 2. Подключите ЖК-дисплей и позвольте вашему творению говорить с миром

Как и каждый шаг в этом руководстве, есть много способов сделать это. Я покажу вам свою любимую.

На вашем ЖК-дисплее есть контактные площадки для пайки с 16 отверстиями, поэтому первым делом нужно прикрепить несколько контактов. Если у вас патент, то я рекомендую приобрести такой заголовок https://www.sparkfun.com/commerce/product_info.php?products_id=117. Но если вы хотите сделать как можно быстрее (как я), вы можете использовать проволоку. Просто отрежьте 16 кусков проволоки примерно на 1/2 дюйма (13 мм (можно и больше)). Затем припаяйте их к плате.

Шаг 3: Подключение ЖК-дисплея Продолжение

Грехи я использую спецсимволы все провода буду соединять.

Контакт 1 Земля Контакт 2 +5 В Контакт 3 Регулировка контрастности Контакт 4 RS Контакт 5 R / W Идет на заземление Контакт 6-14 Контакт данных 15 Контакт питания для подсветки 16 Контакт заземления для подсветки

Шаг 4: строки данных

Теперь вам нужно подключить Arduino к ЖК-дисплею. Не имеет значения, какие контакты вы используете, но я рекомендую следовать схеме.

Шаг 5: Власть МахахаХа

USB-порт на вашем компьютере имеет достаточно мощности для работы Arduino и светодиодной подсветки, поэтому просто подключите заземление и шину питания на макетной плате к выходу питания на плате Arduino.

Шаг 6: сделайте емкостной датчик

Для тестирования я использовал алюминиевую фольгу и пластиковую бутылку для воды, она будет работать с любым контейнером, если он не металлический.

Вы можете использовать любой тип провода, но любые неэкранированные линии будут обеспечивать низкую производительность. Вы можете использовать любые 2 контакта, я выбрал 22 и 23. Подключите одну сторону к земле, а другую к резистору и 2 контактам ввода / вывода.

Шаг 7: Программирование

Вам нужно добавить 2 файла библиотеки, чтобы эта работа работала LiquidCrystal.h https://arduino.cc/en/Tutorial/LiquidCrystalCapSense.h https://www.arduino.cc/playground/Main/CapSenseCopy и вставьте это в Arduino 0017 или новее. // Емкостной датчик жидкости // Вадим, 7 декабря 2009 г. #include #include // Это установка размера ЖК-дисплея const int numRows = f = 4; const int numCols = 20; // Устанавливает контакты для lcd (RS, Enable, data 0-7) LiquidCrystal lcd (53, 52, 51, 50, 49, 48, 47, 46, 45, 44); #define Tempin 0x48 #define Tempout 0x49 CapSense cs_22_23 = CapSense (22, 23); uint8_t block [8] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; uint8_t tl [8] = {0x0F, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0F, 0x0F}; uint8_t tr [8] = {0x16, 0x11, 0x11, 0x11, 0x11, 0x11, 0x1D, 0x15}; uint8_t bl [8] = {0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x1F}; uint8_t br [8] = {0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x12, 0x18}; void setup () {lcd.begin (numRows, numCols); lcd.createChar (4, tl); lcd.createChar (5, tr); lcd.createChar (6, бл); lcd.createChar (7, br); lcd.setCursor (18, 0); lcd.print (4, БАЙТ); lcd.setCursor (19, 0); lcd.print (5, БАЙТ); lcd.setCursor (18, 1); lcd.print (6, БАЙТ); lcd.setCursor (19, 1); lcd.print (7, БАЙТ); lcd.setCursor (0, 2); lcd.print («Топливо»); lcd.setCursor (0, 3); lcd.print («E»); } void loop () {длинное топливо; lcd.createChar (2, блок); длинный старт = миллис (); топливо = cs_22_23.capSenseRaw (200); // Temratue немного отличается, поэтому дайте ему поработать 5 минут перед настройкой. // Настройте это число так, чтобы результат был как можно ближе к нулю. топливо = топливо - 7200; // Затем заполните контейнер // Не комментируйте и настройте его так, чтобы вывод, когда контейнер заполнен, // был как можно ближе к 100. // топливо = топливо / 93; lcd.setCursor (0, 0); lcd.print (""); lcd.setCursor (0, 0); lcd.print (топливо); если (топливо> = 6) {lcd.setCursor (1, 3); lcd.print (2, БАЙТ); } еще {lcd.setCursor (1, 3); lcd.print (""); } если (топливо> = 12) {lcd.setCursor (2, 3); lcd.print (2, БАЙТ); } еще {lcd.setCursor (2, 3); lcd.print (""); } если (топливо> = 17) {lcd.setCursor (3, 3); lcd.print (2, БАЙТ); } еще {lcd.setCursor (3, 3); lcd.print (""); } если (топливо> = 23) {lcd.setCursor (4, 3); lcd.print (2, БАЙТ); } еще {lcd.setCursor (4, 3); lcd.print (""); } если (топливо> = 28) {lcd.setCursor (5, 3); lcd.print (2, БАЙТ); } еще {lcd.setCursor (5, 3); lcd.print (""); } если (топливо> = 34) {lcd.setCursor (6, 3); lcd.print (2, БАЙТ); } else {lcd.setCursor (6, 3); lcd.print (""); } если (топливо> = 39) {lcd.setCursor (7, 3); lcd.print (2, БАЙТ); } else {lcd.setCursor (7, 3); lcd.print (""); } если (топливо> = 44) {lcd.setCursor (8, 3); lcd.print (2, БАЙТ); } else {lcd.setCursor (8, 3); lcd.print (""); } если (топливо> = 50) {lcd.setCursor (9, 3); lcd.print (2, БАЙТ); } else {lcd.setCursor (9, 3); lcd.print (""); } если (топливо> = 55) {lcd.setCursor (10, 3); lcd.print (2, БАЙТ); } else {lcd.setCursor (10, 3); lcd.print (""); } если (топливо> = 60) {lcd.setCursor (11, 3); lcd.print (2, БАЙТ); } else {lcd.setCursor (11, 3); lcd.print (""); } если (топливо> = 64) {lcd.setCursor (12, 3); lcd.print (2, БАЙТ); } else {lcd.setCursor (12, 3); lcd.print (""); } если (топливо> = 69) {lcd.setCursor (13, 3); lcd.print (2, БАЙТ); } else {lcd.setCursor (13, 3); lcd.print (""); } если (топливо> = 74) {lcd.setCursor (14, 3); lcd.print (2, БАЙТ); } else {lcd.setCursor (14, 3); lcd.print (""); } если (топливо> = 78) {lcd.setCursor (15, 3); lcd.print (2, БАЙТ); } else {lcd.setCursor (15, 3); lcd.print (""); } если (топливо> = 83) {lcd.setCursor (16, 3); lcd.print (2, БАЙТ); } else {lcd.setCursor (16, 3); lcd.print (""); } если (топливо> = 87) {lcd.setCursor (17, 3); lcd.print (2, БАЙТ); } еще {lcd.setCursor (17, 3); lcd.print (""); } если (топливо> = 92) {lcd.setCursor (18, 3); lcd.print (2, БАЙТ); } else {lcd.setCursor (18, 3); lcd.print (""); } если (топливо> = 96) {lcd.setCursor (19, 3); lcd.print ("F"); } else {lcd.setCursor (19, 3); lcd.print (""); } задержка (50); }

Шаг 8: Наполните

Он идеально подходит для измерения летучих жидкостей, работает даже внутри пропанового бака. Повеселись. Вся информация предназначена только для образовательных целей, и я не несу ответственности, если вы взорвете себя.