Перевод float в byte
- Войдите на сайт для отправки комментариев
Втр, 20/03/2018 - 15:48
float temp3 = sensors.getTempC (Sensor03); Wire.write(temp3); delay(750);
Здравствуйте возникла проблема с передачей данных в ev3 контроллер по i2c (SDA, SCL) Целочисленные и байты отлично отправляет, но на float ругается. Подскажите пожалуйста как решить проблему. К примеру как записать числа с плавающей точкой в byte. Сам новичок только в программировании
IMHO
...перед Wire.write
Или
По крайней мере, с int это точно должно работать.
Жду-с критиков.
IMHO
...перед Wire.write
Или
По крайней мере, с int это точно должно работать.
Жду-с критиков.
нобелевка за "сжатие" типа float в byte ! однозначнА!
Здравствуйте возникла проблема с передачей данных в ev3 контроллер по i2c (SDA, SCL) Целочисленные и байты отлично отправляет, но на float ругается. Подскажите пожалуйста как решить проблему. К примеру как записать числа с плавающей точкой в byte. Сам новичок только в программировании
я не знаю ev3 контроллер , но float, который вы получаете при чтении датчика, состоит из 4 байт и упакован неким образом, передать 4 байта по wire не проблема, как воспримит это ev3 контроллер ?
что ему надо передавать, может целую и дробную часть в 2 байтах, может еще чего
я х.з.
А что такое ev3 контроллер? Что он отправляет байтами? По сколько? Что из отправки получается?
Жду-с критиков.
Напрасно ждёшь. Критиковать можно мысли или идеи, а критиковать безграмотный бред ламера невозможно.
Иван_123,
а прежде, чем ждать-с критиков, Вы сами это запускали? Проверяли? И как? Работает?
Лучше в трех битах так как температура может быть еще положительная и отрицательная.
Ну ev3 это что-то типо ардуино из лего программируется простым языком из блоков, в него закачал библиотеку для общения по iic там функция ReadByte Пишешь адрес iic и выводишь данные на экранчик (он встроен в ev3)
Лучше в трех битах так как температура может быть еще положительная и отрицательная.
я даже не знаю стоит пролоджать или нет.
вот не поленился узнать что это за чудо
http://www.proghouse.ru/article-box/90-connecting-ev3-arduino
даже пример есть.
Ну я как бы этот гайд и юзал, но там не описано как float значения передавать
Ну я как бы этот гайд и юзал, но там не описано как float значения передавать
а если я найду ?
Буду признателен, но не думаю что тебе это удасться
Лучше в трех битах так как температура может быть еще положительная и отрицательная.
В трёх битах можно хранить числа со знаком от -4 до 3. Т.е. диапазон возможных значений -4, -3, -2, -1, 0, 1, 2, 3. И ничего больше. Вы уверены, что этого хватит для температуры?
Перечитайте ещё раз пост #3. Вам там сказали, что проблем передать число типа float - нет, но Вы уверены, что на той стороне его правильно примут? Если уверены, то как именно его надо передавать, чтобы приняли правильно? Каким байтов вперёд старшим или младшим? Если Вы ответите на этот вопрос, я покажу Вам как передавать.
http://www.proghouse.ru/article-box/90-connecting-ev3-arduino
Жесть! Что только люди не придумают, чтобы убедить блондинку в том, что она тоже что-то может сделать ничему никогда не учась :(
Здравствуйте возникла проблема с передачей данных в ev3 контроллер по i2c (SDA, SCL) Целочисленные и байты отлично отправляет, но на float ругается. Подскажите пожалуйста как решить проблему. К примеру как записать числа с плавающей точкой в byte. Сам новичок только в программировании
Самый простой способ умножить на 100, потом отправить по I2C, после получения разделить на 100
http://www.gammon.com.au/i2c
Всем привет. Уже сломал все мозги себе. Помогите пожалуйста.
Задача - передать из одной ардуины в другую FLOAT по I2C. Мастером служит ардуино контролирующая напряжение и ток, слэйвом - ардуина с LCD дисплеем(для отображения информации).
Подключил библиотеку #include <iarduino_I2C_connect.h>, которая позволяет писать байты в расшаренный массив на слэйве, а затем внутри слэйва обрабатывать и отображать данные на LCD.
Заслал бы в расшареный на слэйве массив байты пользуясь методом
Всем привет. Уже сломал все мозги себе. Помогите пожалуйста.
Задача - передать из одной ардуины в другую FLOAT по I2C. Мастером служит ардуино контролирующая напряжение и ток, слэйвом - ардуина с LCD дисплеем(для отображения информации).
https://github.com/esp8266/Arduino/blob/master/libraries/EEPROM/EEPROM.h
Огромнейшее спасибо Максиму. С его объяснением тут - http://arduino.ru/forum/programmirovanie/zapis-i-chtenie-eeprom-peremennykh-tipa-float-unsigned-long-long-unsigned-int - все получилось.
Отправить и получить float или любой другой тип данных .
Он использует шаблоны для преобразования любого типа данных в поток байтов. Например, отправить float или long на другую Arduino ... . (Просто создайте необработанный файл I2C_Anything.h в и поместите его в папку «I2C_Anything» директории «библиотеки» вашего Arduino. Затем перезапустите IDE, и вы готовы использовать его.). Теперь простой скетч.
Master
Строки, начинающиеся с I2C_readAnything, считывают правильное количество байтов для типа данных и собирают их обратно в переменную, переданную в качестве аргумента.
lego1 а как наоборот получить мастером информацию от слейва.
Все. Разобрался.