MATLAB+Arduino+LCD
Я пытаюсь отправить несколько целых чисел на ЖК-дисплей. Но это не работает. Пробовал в Протеусе. Пожалуйста помоги. Ниже я загрузил код MATLAB и Arduino.
Код MATLAB:
clear all
clc
answer=1; % this is where we'll store the user's answer
arduino=serial('COM1','BaudRate',9600); % create serial communication object on port COM4
fopen(arduino); % initiate arduino communication
while answer
fprintf(arduino,'%s',char(answer)); % send answer variable content to arduino
answer=input('Enter led value 1 or 2 (1=ON, 2=OFF, 0=EXIT PROGRAM): '); % ask user to enter value for variable answer
end
fclose(arduino); % end communication with arduino
Код Arduino:
#include <LiquidCrystal.h>
int matlabData;
LiquidCrystal lcd(12,11,5,4,3,2);
void setup() {
lcd.begin(16,2);
Serial.begin(9600);
}
void loop() {
if(Serial.available()>0) {
matlabData=Serial.read();
lcd.print(matlabData);
}
}
@, 👍-1
Обсуждение2 ответа
Вы можете использовать пакет поддержки Arduino от Matlab, который позволяет вам напрямую управлять Arduino без необходимости писать код в Arduino IDE. Я никогда не использовал его с ЖК-дисплеем. Вот ссылка, которая может помочь.
while answer
fprintf(arduino,'%s',char(answer)); % send answer variable content to arduino
answer=input('Enter led value 1 or 2 (1=ON, 2=OFF, 0=EXIT PROGRAM): ');
% ask user to enter value for variable answer
end
Это только мне кажется, или нужно попросить пользователя ввести что-то перед печатью?
Кроме того, что более важно, разве fprintf(arduino, '%s', char(answer));
не печатает необработанные байты? В этом случае вы будете отправлять 0x01/0x02. Не очень хорошая идея... В коде Arduino выводите на Serial то, что вы получаете, в [шестнадцатеричном] десятичном формате, а не в виде char
.
matlabData=Serial.read();
Serial.print("Received: [0x");
if(matlabData<16)Serial.write('0');
Serial.print(matlabData, HEX);
Serial.println("]");
Это должно помочь вам лучше понять, получили ли вы что-нибудь, и если да, то что.
- Печать string and integer LCD
- Как отобразить символ º на ЖК-дисплее?
- Отправка значения с одного Arduino на другой
- Черные квадраты дисплея Arduino 16x2
- NodeMCU с RFID RC522 и LCD-модулем интерфейса I2C вместе
- ЖК-дисплей I2C отображает странные символы
- Экран LCD 16*02 I2C показывает только первый напечатанный символ
- Потенциометр 10 кОм против резистора 10 кОм на ЖК-дисплее
*Вздох* заставить последовательные порты работать с Matlab — это кошмар. Вы уверены, что эта часть работает правильно? Попробуйте подключить его к ПК и используйте приложение, такое как RealTerm или TerraTerm, чтобы убедиться, что устройство работает правильно., @RubberDuck