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

Fordli

Members
  • Постов

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

  • Посещение

Весь контент Fordli

  1. Я написал программу последовательного порта с stm32, OP отправляет число, а затем возвращает число, но возвращаемое число - это какой-то неизвестный символ, скорость передачи синхронизирована 9608, стоп-биты данных и т.д. одинаковы, от tx до rx, все еще грязный код. Я поменял 3 помощника для отладки последовательного интерфейса, но они все одинаковые, кто-нибудь знает? Спасибо за ваш ответ.
  2. Я просто любитель, я не думал об этом так много. Может быть, потом я отдам его своему другу-профессионалу, и, возможно, друг модифицирует и усовершенствует его. Я не настолько хорош, чтобы сделать свой дизайн настолько совершенным.
  3. Мой ЖК-дисплей может работать при температуре -30℃~+80℃. Но я не знаю, сможет ли микроконтроллер это сделать. Насколько это сложно, я не проверял.
  4. Я разработал этот проект, основываясь на функциональности, которой я хотел достичь, и сделал его просто для развлечения. Я не рассматривал возможность его использования в коммерческих или иных целях. Поэтому я поместил данные в динамическое хранилище только для удобства, потому что так проще писать.
  5. Если бы это был законченный готовый продукт, то это был бы упакованный сенсорный экран. Я просто сделал один из этих проектов благодаря собственному интересу. Может быть, вы не видели такой системы безопасности? Это очень обидно. Во многих квартирах или зданиях есть такие системы контроля доступа. У каждого свое мнение, я просто делаю некоторые маленькие вещи из-за своего хобби, и я не профессионал, чтобы делать это.
  6. Необходимые материалы ESP32 Электронный замок KOB Реле Сенсорный дисплей STONE STWI070WT-01 Модуль MFRC522 Реализованная функция 1. регистрация карты. 2. регистрация имени пользователя и пароля. 3. проведение картой для разблокировки электронного замка. 4. Имя пользователя и пароль для разблокировки электронного замка. Схема подключения Разработка графического интерфейса пользователя видеодемонстрация
  7. Differential Steering Tanker (PS2+SPI+LCD16202) Differential control steering, you can use the X / Y parameters (here with a joystick PS2 handle) to control the vehicle forward and backward, speed regulation, steering; simplify the difficulty of manipulation. I use Promini328p, because it is cost-effective, compact, functional enough; with 74LS595 to achieve SPI extended parallel interface; the first four bits drive a four-phase five-wire stepper motor (turret), the last four bits through 754410 drive two brushed motors. Boot music has not yet progressed to develop applications. This machine adds LCD1602 as a human-machine dialogue, to facilitate the commissioning stage to detect remote control communication.
  8. Управление рулевым управлением с помощью параметров X/Y, управление продолжительностью движения автомобиля, скоростью, рулевым управлением с помощью параметров X/Y (здесь с помощью одного рычага ручки PS2); упрощает более распространенный метод настройки дифференциала. I раньше использовал 328p, его высокая стоимость, компактный размер, функция может быть использована; с 74LS595 для достижения SPI расширенный параллельный интерфейс разработки; первые четыре бита приводят в действие четырехбитный пятипроводной двигатель (турель), последние четыре бита 754410 приводят в действие два щеточных двигателя. Эта машина добавляет LCD1602 (может также использовать другие LCD) как человеко-машинное общение, удобное дистанционное общение. #include <PS2X_lib.h> //PS2X #include <LiquidCrystal.h> //LCD #include "pitches.h" //pitches //LCD initial const int rs = 5, en = 4, d4 = A0, d5 = A1, d6 = A2, d7 = A3; //const int rs = A2, en = A1, d4 = A3, d5 = A4, d6 = A5, d7 = 5; data may also be simulated instead. LiquidCrystal lcd(rs, en, d4, d5, d6, d7); //74HC595 SPI initial #define latch pin 12 #define clock pin 11 #define dataPin 10 //speech const int speaker = 3; int melody[] = {NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4}; // notes in the melody. int noteDurations[] = {4, 8, 8, 4, 4, 4, 4, 4, 4}; // Note durations: 4 = quarter note, 8 = eighth note, etc. // PS2 initial #define PS2_DAT 8 // 2019.10.20 older versions dat, cmd can't use analog pins. #define PS2_CMD 7 #define PS2_SEL A5 #define PS2_CLK A4 #define motorL_En12 9 //754410 PinEnable,PWMpin #define motorR_En34 6 int motorDr[]={B0101,B1010,B0000}; //(-+ -+,+-+-,----)/gofront,goback,stop motorCode //adjustable pin positive and negative configuration, {B1010,B0101,B0000} int L_EnValue=0, R_EnValue=0; PS2X ps2x; // Create PS2 controller class int PS_LX; // PS2 handle left joystick X axis data left joystick to walk INT PS_LY; int PS_RX; // PS2 handle right joystick X-axis data right joystick for turret turret INT PS_RY; // temporarily empty integer error = 0; //ps2 connection correct or not to determine the flag byte type = 0; //ps2x.readType() conversion discriminator flag byteVibrate = 0; int carCoad=0; //car movement mode code integer F=0; //car move value int turn=0; //car turn value integer T=0; //turning wheel value int Degree = 1100; //Maximum number of turns int StepNumber = 0; //Step motor will not move the number int old_Degree = 0; int StepData = 0; //Step motor execution code int stepCode[] = {8, 12, 4, 6, 2, 3, 1, 9}; //8-step code int stepCodeIndex=0; //step code-which layer of the motor's current position 0~7 Invalid setting () { lcd.begin(16, 2); // set the number of columns and rows of LCD. lcd.print("Lx"); lcd.setCursor(0,1); lcd.print("Rx"). lcd.setCursor(0,1); lcd.print("Rx"); lcd.setCursor(8,0); lcd.write("Ly"); lcd.setCursor(8,1); lcd.write("Ry"); pinMode(dataPin,OUTPUT); pinMode(clockPin,OUTPUT); pinMode(latchPin,OUTPUT); //74HC595 pin configuration pinMode(motorL_En12,OUTPUT); pinMode(motorR_En34,OUTPUT); //motor enable pin configuration //Tone for (int thisNote = 0; thisNote < 8; thisNote++) { int noteDuration = 1000 / noteDurations[thisNote]; Tone (speaker, melody[thisNote], noteDuration). int pauseBetweenNotes = noteDuration * 1.30; // To distinguish between notes, set the minimum time between them. // Duration of notes + 30% seems to work well. Delay (pauseBetweenNotes). NoTones (3); // Stops playing the tones. } // Initialize serial communication Serial.begin(9600); Delay (50). error = ps2x.config_gamepad(PS2_CLK, PS2_CMD, PS2_SEL, PS2_DAT); } Invalid loop () { integer number = 5. ps2x.read_gamepad(false, vibration); //read the controller and set the big motor to rotate at "vibration" speed /*if(ps2x.Button(PSB_START)) //start selection Serial.println("Start is being held"); if(ps2x.Button(PSB_SELECT)) //select selected Serial.println("selection is being held"); */ PS_LX=ps2x.Analog(PSS_LX); //put PS2 joystick X-axis data down PS_LX PS_RX=ps2x.Analog(PSS_RX); // pull down PS_RX for PS2 joystick X-axis data PS_LY=ps2x.Analog(PSS_LY); //Pull down PS2 joystick Y-axis data to PS_LY PS_RY=ps2x.Analog(PSS_RY); //Pull down PS_RY for PS2 joystick Y-axis data lcd.setCursor(3,0); //LCD display parameters LCD print (PS_LX). lcd.setCursor(11,0); LCD printing (PS_LY). lcd.setCursor(3,1); LCD printing (PS_RX). lcd.setCursor(11,1); LCD printing (PS_RY). /***************** travel control ************************/ if(PS_LY<=125){ //wheel enable/motor function function toward configuration F = map (PS_LY,125,0,90,255); //motor enable value determined carCoad = motorDr[0]; //each motor running direction determined goFront } Otherwise if (PS_LY>=130) { F = map (PS_LY,130,255,90,255). carCoad = motorDr[1]; //go back } else {F=0; carCoad = motorDr[2];} //stop // steering affects the perspective of rotation enable if(PS_LX<=125){ //turn left Turn = Map(PS_LX,125,0,90,40); L_EnValue = F * Turn/100; // steering side motor enable value decreases if(L_EnValue<30) L_EnValue = 0; //If the enable value is less than a certain value, it is directly defined as 0; pole burn motor. R_EnValue = F; } else if(PS_LX>=130){ //right turn Turn = Map(PS_LX,130,255,90,40); L_EnValue = F; R_EnValue = F * Turn/100; // steering side motor enable value decreases if(R_EnValue<30) R_EnValue = 0; //If the enable value is less than a certain value, it is directly defined as 0; pole burn motor. } else { // turn = 0; L_EnValue = F; R_EnValue = F; } carMove(carCoad,L_EnValue,R_EnValue,StepData); // Call the step subroutine with the resulting parameters. /***************** turret control ************************/ { } } /************************************************ Walk subroutine (walk mode, en_L, en_R, Turrent_StepData) ************************************************/ void carMove(int carCoad,int L_EnValue,int R_EnValue,int StepData) { Byte data bytes. digital write (motorL_En12, low); // first close each enPin digital write (motorR_En34, low). DataByte = (StepData<< 4) | license plate; //Byte combination //Serial.print(" StepData ");Serial.print(StepData);Serial.print(" carCoad ");Serial.println(carCoad); digital write (latch pin, low); //data trigger output, turn off latchPin. shiftOut(dataPin, clockPin, MSBFIRST, DataByte); //send byte by byte //delay(5); Digital write (latch pin, high); //open latchPin, data output in parallel Analog write (motor L_En12, L_EnValue). analog write (motor R_En34, R_EnValue). }
  9. Я хочу сделать управляемый переключатель с 51 микроконтроллером, я ищу схему для управления реле с оптопарой (включая соединение между оптопарой и микроконтроллером) Модель оптопары - pc817, а реле - 5v.
  10. Какой метод проще всего использовать?
  11. Я использовал такие микроконтроллеры как arduino и stm32 для управления LCD, я хотел бы знать, как управлять LCD с помощью FPGA, следующее вложение - лист данных LCD. Datasheet STONE STWI070WT-01.pdf
  12. Моя программа хочет управлять камерой на Raspberry Pi, при выполнении этого кода отдельно нет никаких проблем, но когда я записываю его в функцию, она сообщает о следующей ошибке. Сначала я создал папку, а затем сделал фотографии, используя временные метки для их названия, управление пинами GPIO заключается в том, чтобы при съемке фотографий вспыхивала вспышка, часть кода (часть функции, которая сообщает об ошибке) выглядит следующим образом. os.mkdir('/home/pi/Desktop/czp') def picture_cjob(): timestart = time.time() timestop = timestart + 30 while True: timenow = time.time() if (timenow < timestop): GPIO.output(18,GPIO.HIGH) camera.capture('/home/pi/Desktop/czp/'+str(time.time())+'') GPIO.output(18,GPIO.LOW) time.sleep(2) else: break
  13. Моей arduino нужно установить 2 сигнала ss, один для nrf24l01 и один для enc28j60. затем, когда устройство инициализируется, просто настройте пины в соответствии с фактическим ss, правильно?
  14. Я загрузил вложение моей платы STM32. designer.pdf
  15. Какой интерфейс использует STM32? Когда я использую arduino для соединения с моим lcd, интерфейс меняется на TTL, может ли STM32 использовать TTL интерфейс?
  16. Я хочу построить простой шлюз с arduino+nrf24l01+enc28j60, nrf24l01 принимает сигнал и enc28j60 передает его в LAN, но проблема в том, что и nrf24l01 и enc28j60 используют протокол SPI для взаимодействия с arduino, если я хочу использовать собственный lib разработки arduino, я могу выбрать только один из nrf24l01 и enc28j60, потому что они имеют общее определение (pins_arduino.h). static const uint8_t SS = 10; static const uint8_t MOSI = 11; static const uint8_t MISO = 12; static const uint8_t SCK = 13 Итак, решение состоит в том, чтобы выбрать nrf24l01 вместо использования lib development, которая поставляется с arduino, но использовать другой IO порт, который я разработал сам, это правильно?
  17. Данный проект предназначен для управления RGB лампами с помощью дисплейного модуля STONE: 1. Управление цветом света 2. Управление яркостью света 3. Управление четырьмя режимами работы лампы Принцип работы управляющего tft-lcd дисплея STONE Модуль tft-lcd взаимодействует с MCU клиента посредством команд (шестнадцатеричный код), а MCU затем управляет работой подключенного устройства в соответствии с полученными командами. Разработка графического интерфейса пользователя Проводка и сварка Завершив вышеописанное управление сенсорным дисплеем, мы можем сосредоточиться на разработке MCU и ламп WS2812B_RGB. Но перед этим нам нужно провести сварочные работы. Схема подключения Адаптер питания 12В, который необходим для питания дисплейного модуля STONE STVC070WT-01 и для питания модуля MCU и лампы WS2812B_RGB путем понижения напряжения до 5В через dc-dc buck. Аксессуары, используемые в проекте сварка Сварите эти части вместе, и эффект будет следующим: Код драйвера STM32 Код STM32 Кнопки и текст на экране дисплея имеют соответствующие адреса. В данном проекте адреса компонентов экрана дисплея следующие: Наконец, код загружается в микросхему STM32, и готовая печатная плата подключается к экрану дисплея управления, при этом гарантируется стабильность электропитания. Затем яркость и цвет RGB-лампы можно контролировать с помощью модуля дисплея управления STONE. Окончательная схема подключения оборудования Эффект бега видеодемонстрация
  18. Недавно я использовал Arduino для программирования stm32, и мне нужно использовать ШИМ-выход, но кажется, что частота фиксирована на 550 Гц. Я хотел бы знать, как изменить частоту ШИМ простым и легким способом. Например, я могу использовать analogWriteFreq(3000) для изменения частоты ШИМ на 3 КГц на ESP8266, но эта функция не работает на stm32. есть ли аналогичный метод для stm32?
  19. Спасибо за ваше терпение, я думаю, что мне нужно переосмыслить этот проект, и, возможно, мне нужно снова выбрать аспект датчика.
  20. Я рассматривал обычный металлоискатель, который, как мне кажется, вполне достижим с помощью чувствительного элемента Холла, и я прошу прощения за то, что разместил это в неподходящем месте. Спасибо также за ваши предложения или вопросы, я буду обновлять информацию здесь, как только этот проект продвинется.
  21. Величина тока в проводе может быть определена путем измерения магнитного поля с помощью элемента Холла. Да, конечно, не может, экран играет лишь второстепенную роль для отображения или хранения загруженной информации. Я думал об обнаружении металла с помощью чувствительных элементов Холла, при обнаружении металла срабатывает зуммер. Спасибо за ваш ответ, у меня дома хранится лопата, которой давно не пользовались.
  22. У меня есть предварительная идея, что я хотел бы сделать металлоискатель, используя сенсорный дисплей. Сейчас у меня есть сенсорный дисплей, микроконтроллер ESP8266, зуммер, и я приобрел дополнительный чувствительный элемент Холла. Это все, что мне нужно использовать? Может ли кто-нибудь с опытом в этой области подсказать мне идею?
×
×
  • Создать...