Вывод резистора
- Войдите на сайт для отправки комментариев
Чт, 08/02/2018 - 21:19
Всем доброго времени суток!
В этом деле я новичек, занимаюсь всего неделю, все пытаюсь решить своими силами, но есть моменты которые не получаются.
По этом я и хотел бы обратиться с просьбой о помощи к Вам.
У меня есть задача - чтобы на дисплей выводилось сопротивление резистора, который подключен к контактам.
Весь интернет облазил, хоть убей не выходит.
Написал вот такой вот код, подскажите, в чем ошибка может быть?
#include "U8glib.h"
#include <SPI.h>
#include <Wire.h>
U8GLIB_ST7920_128X64 u8g(10, 11, 12, U8G_PIN_NONE); // настройка пинов для вывода дисплея
int resist = 7; // Создание переменной lam - название, 2 - ножка пина
float Vout = 0; // Переменная для хранения значения напряжения в средней точки делителя (0-5.0)
float R2 = 0; // Переменная для хранения значения резистора R2
void setup()
{
u8g.setFont(u8g_font_6x10); // Выбор шрифта
pinMode(resist, INPUT); //инициализация контакта
void loop()
{
Vout = (5.0 / 1023.0) * analogRead(analogPin); // Вычисляем напряжение в средней точки делителя (0-5.0)
R2 = 15000 / ((5.0 / Vout) - 1); // Вычисляем сопротивление R2 (15000 это значение R1 15 кОм)
R2 = digitalWrite(resist);
u8g.firstPage();
do
{
u8g.drawStr(20, 10, R2); // выведод cопротиаления
}
while(u8g.nextPage());
}
Написал вот такой вот код, подскажите, в чем ошибка может быть?
Во-первых, код надо выложить по правилам.
Во-вторых, вы не написали, в чем проблема - считает неверно, показывает неправильно, вообще не работает, не компилируется?
Написал вот такой вот код, подскажите, в чем ошибка может быть?
Во-первых, код надо выложить по правилам.
Во-вторых, вы не написали, в чем проблема - считает неверно, показывает неправильно, вообще не работает, не компилируется?
Прошу прощения за оформление темы, не до конца разобрался с форумом, не могу найти кнопки редактирования поста.
А по коду, извиняюсь за выражение, "дрочу" его уже дня 4, вначале не комелировался, потом не выводил на дисплей информации, сейчас ни то, ни другое...
Прошу прощения за оформление темы, не до конца разобрался с форумом, не могу найти кнопки редактирования поста.
А по коду, извиняюсь за выражение, "дрочу" его уже дня 4, вначале не комелировался, потом не выводил на дисплей информации, сейчас ни то, ни другое...
Тут нет возможности редактировать первый пост - поэтому выложите код еще раз, по правилам (это не придирка, так обсуждать код удобнее).
Насчет того, что не работает в коде - давайте поподробнее. Если не компилируется - выкладывайте копию сообщения об ошибки, если не работает - пишите, КАК ИМЕННО. Без вашей точной информации копаться в коде никто не станет.
По ошибке
no known conversion for argument 3 from 'float' to 'const_FlashStringHelper*'
По ошибке
no known conversion for argument 3 from 'float' to 'const_FlashStringHelper*'
На будущее всегда выкладывайте сообщения компилятора целиком. Он, к примеру, еще всегда указывает строку, в которой возникла ошибка. Но тут сразу видно, что ошибка возникает в строке 36. Вы пытаетесь вывести значение типа float (R2) функцией, предназначенной для печати строк. - u8g.drawStr(20, 10, R2); (она так и называется drawStr() - drawString)
Вам нужно сначала преобразовать float R2 в строку, для этого воспользуйтесь dtostrf() - найдите описание и почитайте.
Скетч после этого не заработает - там еще куча ошибок. Но исправте для начала эту.
Большое спасибо,что показали откуда копать. Сейчас буду пробовать =)
Стыдно выкладывать, но пробежался по примерам и вышло что-т о типа вот этого
Какого эффекта вы ожидаете от строки 54?
Често сказать, без понятия.
Я нашел на ютубе видеоурок с исходником и пытаюсь его подстроить под свой дисплей. )))
Вы умножаете на функцию записи.
Начните хотя бы с туториалов по языку на сайте )
Често сказать, без понятия.
Прочитай, что делает функция digitalWrite() и подумай - а нужна ли она в строке 54? А может там другая функция нужна?
Время написания очень поджимает, по этому мудохаюсь с готовыми исходниками и переделываю их)
Это как колоть дрова тупым топором, потому что торопишься и не успеваешь наточить.
Вы правы, DigitalRead
полностью согласен.9 лет назад занимался Delphi и Питоном, но уже все позабывал...
Ну впринципе все переделал и вот что получилось, но опять, ошибки, ошибки..
Ребят, тогда такой вопрос, мне нужно подключить к Ардуино 3 датчика NPC и иметь переменные с числами-сопротивлениями онных.
Кто и за сколько?)
NTC? Термисторы?
Это как колоть дрова тупым топором, потому что торопишься и не успеваешь наточить.
Та ладно, ты их когда последний раз колол (не на лучину для растопки)?)))) Его колуном зовут, там острота не нужна.))))
Именно
Используются в холодильном оборудовании. Даже в бытовых хол-ках.
Вы правы, DigitalRead
Нет, digitalRead может считывать только два состояния - 0 (0В) и 1 (5В). Промежуточные значения она не считывает, для этого есть analogRead(). И резистор должен быть подключен к аналоговому входу.
Это как колоть дрова тупым топором, потому что торопишься и не успеваешь наточить.
Та ладно, ты их когда последний раз колол (не на лучину для растопки)?)))) Его колуном зовут, там острота не нужна.))))
Не придирайся))) возьмём для примера поход, куда колун по причине неподъёмности не берут)
т.е на цифровые контакты не пойдет, нужно к аналоговым входам/выходам?
Это как колоть дрова тупым топором, потому что торопишься и не успеваешь наточить.
Та ладно, ты их когда последний раз колол (не на лучину для растопки)?)))) Его колуном зовут, там острота не нужна.))))
Не придирайся))) возьмём для примера поход, куда колун по причине неподъёмности не берут)
Опять не в цвет.))) Еще как берут и бензопилу в придачу, правда в багажнике. Давно уже не был.((((
Поход это когда пешком с рюкзаками ) остальное уже не то)
Но от оффтопа к делу. ТС, если ну никак не справитесь, создавайте тему в "Ищу исполнителя".
т.е на цифровые контакты не пойдет, нужно к аналоговым входам/выходам?
В принципе не обязательно, если рассчитаете делитель так, чтобы в нужный момент давало единицу или ноль, то можно и на цифровой. Хотя это уже полное извращение.))))
т.е на цифровые контакты не пойдет,
Нет, потому что по условию задачи нужно считывать аналоговый сигнал. Цифровой имеет только два состояния, о чём я писал выше.
нужно к аналоговым входам/выходам?
Только к аналоговым входам, они подключены к АЦП.
Аналоговые выходы это совсем другое, там выход ШИМ.
DrFix, я вот только не очень понимаю цель измерения сопротивления, вы ведь не омметр делаете. Чем кривая напряжения на выходе не устраивает? У нее прямая зависимость от соотношения делителя.
Ну впринципе все переделал и вот что получилось, но опять, ошибки, ошибки..
что вы переделали? Переменную R2 типа Float так и продолжаете через функцию строки выводить? Добавили кучу бесполезного кода с 33 по 43 строку, а даже эту первую задачу не решили... Измерение сопротивления из кода вообще пропало, расчет делителя тоже... Что это за фигня у вас получилась?
DrFix - какое может быть "сроки поджимают" с таким кодом? Кому подобная галиматья нужна?
Если нужно срочно мерить температуру - купите три обычных китайских термометра с выносными датчиками на проводе - они в магазинах рублей по 200 продаются - и то будет надежнее, чем ваши опыты.
Да заказал уже человеку.
Остановился на вот таком коде)
А сроки жмут потому что уезжаю.
Хотелось бы закончить все до отьезда)
А по поводу термометров - я не их хочу сделать)