Программирование

Вопросы по программированию Arduino.

Работа сервопривода от MPU6050 и потенциомтра

Доброго времени суток. У меня есть два кода, один что бы управлять сервой с помощью гироскопа (MPU6050), на этом реализована платформа, которая остается в горизонтальном положении не зависимо от того в каком положении находится объект на котором установлен гироскоп. И второй код для управления сервой с помощью потенциометра.

Параллельный процессы при нажатие кнопки

Добрый день,

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

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

Сокращение кода

Коллеги, как корректно подставить значение "data" в функцию вывода комбинации сегментов на семисегментный индикатор. Этот код работает, но хотелось бы одной строкой и значение напрямую без переменной.

uint8_t data[] = {0x54}; 
displayLed.setSegments (data); 

 

можно ли из char перевести в int

есть у меня библиотека микросхеми DS1307. Там дату и год можна вивести через int

но вот месяц там виводится только через char. Хочу узнать можна ли число из char

превести в int.

Вывод на экран 2004

Приветствую, уважаемые! Пишу скетч для управления отоплением, солнечными коллекторами, рекуператором, индикацией температур и пр. 

Сейчас дело притормозилось из-за отсутствия знаний по выводу инфы на экран I2C 2004. Промлема в том, что нужно сделать несколько экранов, которые можно было бы пролистывать энкодером.

Как на Андройде, короче):

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

на другом показания водо-воздушного коллектора

на третьем отопление

на четвёртом воздушные коллекторы

Мега работа с Serial1-сом1 компа

// инициализируем библиотеку LCD
//LiquidCrystal lcd(12, 13, 11, 10, 9, 8);
#include "U8glib.h"
U8GLIB_ST7920_128X64 u8g(37, 35, 39, U8G_PIN_NONE); // настройка пинов
//U8GLIB_ST7920_128X64 u8g(51, 49, 53, U8G_PIN_NONE); // настройка пинов
#include "HX711.h"
HX711 scale(43, 41, 128);    // "усиление" - опущено; значение по умолчанию 128 используется библиотека
String s1="00.00";
String s2="00.00";
String s0=" 00.00";
String s3=" 000 ";

работа с буфером экрана (ксроллинг)

Приветствую!

Хочу сделать скролл экрана. организовал буффер:

     char screen[LCD_H][LCD_W];

теперь нужно сдвинуть экран вверх, освободив нижнюю строку. Как это лучше сделать?

Правимльно ли будет такое решение?:



for (int y=0; y<screen_H-1;y++)
{
   for (int x=0;x<screen_W;x++)
    {
      screen[y][x]=screen[y+1][x];
    }
}

 

Тестер для аккумуляторов 18650

Всем приве.

Сделал я вот такой тестер для аккумуляторов 18650.

Вот его схема

 

 

Фиксируемых генератор импульсов

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

И так имеем кнопку и один выход с подвязоным светодиодом для визуализации , Задача при нажатии на кнопку получаем импульс Hi 1C low 3C в количестве 50 раз и ждем нажатии нажатия кнопки если нажатия раньше окончания цикла то пауза и сброс счетчика. Зарания благодарен.

Битовые операции, как правильно?

Есть устройство TEA5767
Читаем из него 5 байт информации, согласно даташиту, и сохраняем в переменную unsigned char teaBuf[5].
Опять же по даташиту в 4 байте есть 3 параметра:
1. 7-4 бит уровень сигнала
2. 3-1 бит идентифткатор чипа
3. 0 бит не используется.
 
Мне нужно получить уровень сигнала, делаю так:
byte level = (teaBuf[3] & 0xF0) >> 4;