Cum se programează senzorul de presiune și motorul cu ecranul motorului

M-am ocupat de controlul unui motor de mare putere cu un controler de motor greu, și am reușit să-mi fac motorul să se rotească, dar nu am reușit să integrez un program pentru senzorul meu de presiune și să-l determin să determine viteza motorului. Sunt destul de sigur că am conectat piesele corect pe circuitul meu, deci cred că codul meu trebuie să aibă o greșeală sau ceva care lipsește. Senzorul de presiune pe care îl folosesc: Regulatorul motorului pe care îl folosesc: int motorValue=0; int sensorValue=0; int sensorPin=A0; int EnablePin=8; int PWMPin2=3; void setup() { //put your setup code here, to run once: pinMode(EnablePin, OUTPUT); //pinMode(sensorPin, OUTPUT); Serial.begin(9600); pinMode(PWMPin2, OUTPUT); pinMode(sensorPin, INPUT); } void loop() { // put your main code here, to run repeatedly: sensorValue = analogRead(sensorPin); //float voltage = sensorValue * (5.0/1023.0); //Serial.println(voltage); delay(50); motorValue=map(sensorValue,0,1023,0,255); //motorValue=sensorValue/4; //analogWrite(motorPin,motorValue); digitalWrite(EnablePin, HIGH); analogWrite(PWMPin2, motorValue); }

Edit: The sensor works by reading the voltage. Here's an actual picture of how I wired it:

Here's how I wired it I used this wiring to print out the voltage with just the Arduino and it worked, and I'm using it with the same wiring but while having the motor shield on top, so that's why I'm guessing that I must not be programming the sensor right with the motor controller. I couldn't get the voltage readings when I used this setup with the motor driver shield.

0
Pe lângă adăugarea unei scheme și a unei fotografii, puteți explica cum și de ce viteza motorului este legată de "presiune" în configurația dvs. În mod obișnuit, viteza este detectată utilizând un codificator sau un tahometru sau un senzor Hall sau citiri de tensiune etc. în loc de "presiune"
adăugat autor Martin C. Martin, sursa
Cât despre necomentarea codului de înregistrare, astfel încât să puteți vedea ce citește cu ecranul motorului instalat și comandat. De asemenea, asigurați-vă că ecranul motorului nu conectează ceva la A0, fie ca semnal de comandă, fie ca reacție potențială (de exemplu sensul curentului motorului).
adăugat autor rossp, sursa
"Sunt sigur că am conectat corect piesele" - S-ar putea să fiți siguri, dar nu suntem siguri deloc. Putem să vedem ce ai conectat și cum este conectat totul?
adăugat autor Majenko, sursa
Acest lucru nu va face diferența, dar solul și 5V de la arduino nu merg la locul corect pe panou. Schimbați-le pentru a păstra standardele, ca și cum ar fi fost părți polarizate acolo unde ar fi murit. De asemenea, în cazul în care linia roșie merge din lateralul vasului flexibil?
adăugat autor RSM, sursa
Am schimbat polaritatea terenului și 5V, dar nu părea să aibă nicio importanță, așa cum ați spus. Am avut firul roșu negativ în imagine, dar acum merge la pozitiv. Lucru ciudat pe care l-am observat; Am citit mici tensiuni atunci când am împins senzorul, dar mult mai mic decât ar fi trebuit, cum ar fi 0.01-0.05, când ar fi trebuit să fie mai mult de 1 până la 5, dat fiind cât de greu am împins. Deci, unele tensiuni trebuie să treacă, dar cumva nu sunt suficiente.
adăugat autor Min, sursa

1 răspunsuri

În funcție de setările jumperului, ecranul MegaMoto va acționa tensiunile senzoriale actuale pe una sau două dintre intrările analogice Arduino.

Imaginea ta arată șuntul instalat pentru a conduce vehiculul A0, ceea ce, desigur, va intra în conflict cu încercarea dvs. de a utiliza același pin pentru senzorul de forță.

Dacă nu utilizați feedbackul actual, se pare că ați putea să eliminați jumperul, altfel va trebui să alegeți știfturi distincte pentru sensul curent și senzorul de forță. Consultați manualul pentru a fi siguri.

(Celălalt plasament al celuilalt jumper în acel bloc arată puțin suspicios, aproape că pare să fie scurtcircuitul celor două canale actuale, dar nu sigur de asta)

0
adăugat