Перейти к содержанию

xrou

Members
  • Постов

    23
  • Зарегистрирован

  • Посещение

Информация

  • Город
    Красноярск

Электроника

  • Стаж в электронике
    Менее года
  • Сфера радиоэлектроники
    микроконтроллеры

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

Достижения xrou

Новобранец

Новобранец (2/14)

  • 10 постов на форуме
  • Неделя на форуме
  • Месяц на форуме
  • Год на форуме

Последние значки

0

Репутация

  1. Привет, к стмке подключен датчик тока INA219. Датчик измеряет напряжение на аккумуляторе (до 16.8 вольт) и ток, потребляемый коптерным моторчиком (до 20А). Шунт заменен на шунт с сопротивлением в 0.01 Ом. При считывании напряжения выдает что-то около трех вольт и отсутствие тока (реальное напряжение на аккуме около 12, ток какой есть, максимальные обороты мотора). Мне кажется дело в том что датчик не откалиброван, подскажите какое значение калибровки нужно для правильной работы.
  2. Всем привет, есть микросхема gy9250. Нужно подключить по программному i2c. Есть такой код: #include <MPU9250.h> #include <SoftWire.h> MPU9250_<SoftWire> mpu; SoftWire sw(6, 5); void setup() { Serial.begin(115200); Serial.print("Init.... "); MPU9250Setting setting; setting.accel_fs_sel = ACCEL_FS_SEL::A16G; setting.gyro_fs_sel = GYRO_FS_SEL::G2000DPS; setting.mag_output_bits = MAG_OUTPUT_BITS::M16BITS; setting.fifo_sample_rate = FIFO_SAMPLE_RATE::SMPL_200HZ; setting.gyro_fchoice = 0x03; setting.gyro_dlpf_cfg = GYRO_DLPF_CFG::DLPF_41HZ; setting.accel_fchoice = 0x01; setting.accel_dlpf_cfg = ACCEL_DLPF_CFG::DLPF_45HZ; mpu.setup(0x68, setting, sw); Serial.println("done"); pinMode(13, OUTPUT); } void loop() { if (mpu.update()) { Serial.print(mpu.getYaw()); Serial.print(" "); Serial.print(mpu.getPitch()); Serial.print(" "); Serial.println(mpu.getRoll()); } digitalWrite(13, !digitalRead(13)); delay(20); } условие в loop никогда не выполняется. Анализатор молчит. Сигнал есть только при mpu.setup(). Помогите подключить датчик
  3. xrou

    Stm и digispark по i2c

    Полистал даташит на микросхемы attiny https://static.chipdip.ru/lib/542/DOC003542649.pdf. При питании 5 вольт, за единицу берется напряжение от 2.5 вольт (пункт 22.7). Еще и запас остается около 0.8 вольт
  4. xrou

    Stm и digispark по i2c

    Так тоже пробовал. Stm, digispark питаются от 5 вольт, линии I2C подключены на прямую. Резистор 10к на SDA и резистор 10к на SCL
  5. xrou

    Stm и digispark по i2c

    Уровни выравниваю отдельной платой, которая по сути просто несколько транзисторов. Работает в обе стороны. 3,3В <-> 5В
  6. xrou

    Stm и digispark по i2c

    Да, 10 кОм каждый к линии 5 вольт. Может надо к 3,3?
  7. xrou

    Stm и digispark по i2c

    Всем привет, собираю сеть из stm32f103c8t6 и digispark (attiny85), связь по i2c. Digispark включается с задержкой 5-6 секунд, в это время stm уже начинает слать пакеты, при включении digispark отправка происходит, но сигнал тухнет. Исправил это добавив задержку перед инициализацией периферии, в итоге код получился такой: int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ HAL_Delay(7000); /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_I2C1_Init(); MX_USART1_UART_Init(); /* USER CODE BEGIN 2 */ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET); HAL_Delay(100); HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET); uint8_t I2C_Address = 0x50; uint8_t recieveData = 0; /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { uint8_t sendData = 10; HAL_I2C_Master_Transmit(&hi2c1, (I2C_Address << 1), &sendData, 1, 100); HAL_Delay(100); sendData = 20; HAL_I2C_Master_Transmit(&hi2c1, (I2C_Address << 1), &sendData, 1, 100); HAL_Delay(100); HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET); HAL_Delay(100); HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ } Но связи по прежнему нет. Для отладки поставил вместо stm ардуину - связь есть. Поставил вместо digispark ардуину - связь есть (между stm и ардуино). Digispark как будто не слышит stm. В чем проблема? Использую аналог digispark - attiny85 uno mini usb (тот же самый digispark, но с другим портом) Код digispark #include <TinyWire.h> #define SLAVE_ADDR 0x50 int potVal = 0; int led_val = 0; void setup() { pinMode(1, OUTPUT); TinyWire.begin(SLAVE_ADDR); TinyWire.onRequest(angleRequest); TinyWire.onReceive(messageReceive); digitalWrite(1, HIGH); delay(50); digitalWrite(1, LOW); } void loop() { } void messageReceive(int howMany) { if(led_val == 1) { digitalWrite(1, LOW); led_val = 0; } else if(led_val == 0) { digitalWrite(1, HIGH); led_val = 1; } uint8_t receiveData = TinyWire.read(); } void angleRequest() { potVal = analogRead(3); byte high = highByte(potVal); byte low = lowByte(potVal); TinyWire.send(high); TinyWire.send(low); }
  8. Вопрос был в том, как заставить мотор приходить в нужное положение с первого раза. Энкодер я уже настроил, он работает
  9. Магнитный энкодер. Или может вы про что-то другое?
  10. Здравствуйте, имеется: мотор 60GA775 12 вольт, магнитный энкодер AS5600, stm32f103c8t6, пытаюсь сделать из всего этого серводвигатель с помощью ПИД регулятора. Но выходной вал либо не доезжает, либо колебается вокруг заданного положения. Подскажите как настроить ПИД регулятор(Что он должен регулировать? Если мощность, то какое минимальное значение - то, при котором начинает движение мотор или 0?). Слышал про OpenServo но они походу сдулись, но на алике есть другие контроллеры, но не понятно что конкретно они делают и с какой точностью. На фотке, как это все выглядит (мотор внутри трубы)
  11. Здравствуйте, пытаюсь подключить USB флешку к STM32F767ZI Включаю USB_OTG_FS - host only, (V bus и SOF не включаю), USB HOST Class for fs ip - Mass Storage host class, FATFS (USE_LFN - в стеке) - USB_Disk В настройках USB_HOST требует, как я понял, пин отвечающий за питание устройства - PC1 Код простейший, должен работать 100% а может нет. Внутренние файлы библиотек не менял Думаю что нет питания на USB устройство т.к. пробовал вставить туда ttl конвертер на котором есть светодиод питания и он не горит Ваши идеи и предположения?
  12. Я не имею больших знаний в этой области, но очень хочется что либо создавать, а в гуглах ответа на этот вопрос нет (либо я спрашивать не умею, либо все и так умные все знают)
  13. Хорошо, с джойстиком разобрались, а мне надо подключить сервопривод mg996r у которого логический уровень 4.8-7.2 вольта, как быть в таком случае? Знаю про преобразователь уровней, но будет ли он нормально работать с шим сигналом?
  14. Включил в 3.3, снова появились огромные мёртвые зоны. Думал писать но заметил что они внезапно пропали, потыкал провода, проверил все, ничего и заметил, когда я соединяю контакты USB - большой, железный, походу это земля, зоны пропадают и он начинает выдавать отличные значения. Опять все вернулось к земле спасибо!
  15. Джойстик KY-023, имеет вход 5v и gnd, 3 выхода vrx, vry, sw
×
×
  • Создать...