Steven Lim S.T. Ответов: 1

Здравствуйте, я использую датчик скорости lm393 с помощью arduino, теперь я хочу протестировать его на raspberry pi, может ли кто-нибудь помочь мне преобразовать код ?


#include 
unsigned int counter=0;

int b1a = 6;  // L9110 B-1A 
int b1b = 9;  // L9110 B-1B

void docount()  // counts from the speed sensor
{
  counter++;  // increase +1 the counter value
} 

void timerIsr()
{
  Timer1.detachInterrupt();  //stop the timer
  Serial.print("Motor Speed: "); 
  int rotation = (counter / 20);  // divide by number of holes in Disc
  Serial.print(rotation,DEC);  
  Serial.println(" Rotation per seconds"); 
  counter=0;  //  reset counter to zero
  Timer1.attachInterrupt( timerIsr );  //enable the timer
}

void setup() 
{
  Serial.begin(9600);
  
 pinMode(b1a, OUTPUT); 
 pinMode(b1b, OUTPUT); 
  
  Timer1.initialize(1000000); // set timer for 1sec
  attachInterrupt(0, docount, RISING);  // increase counter when speed sensor pin goes High
  Timer1.attachInterrupt( timerIsr ); // enable the timer
} 

void loop()
{
  int potvalue = analogRead(1);  // Potentiometer connected to Pin A1
  int motorspeed = map(potvalue, 0, 680, 255, 0);
  analogWrite(b1a, motorspeed);  // set speed of motor (0-255)
  digitalWrite(b1b, 1);  // set rotation of motor to Clockwise
}


Что я уже пробовал:

from RPi import GPIO
from time import sleep

d0 = 7

GPIO.setmode(GPIO.BCM)
GPIO.setup(d0, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

counter = 0
d0LastState = False

try:
        while True:
                currentState = GPIO.input(d0)
                print (counter)
                if currentState != d0LastState:
                        counter +=1
                d0LastState = currentState

finally:
        GPIO.cleanup()

Richard MacCutchan

Извините, но этот сайт не предоставляет бесплатных услуг по написанию кода или конвертации.

1 Ответов

Рейтинг:
1

Jochen Arndt

Ни LM393 (dual comparator analog IC), ни L9110 (dual channel motor driver) не являются датчиками скорости.

Мы даже не можем помочь, когда догадываемся, что код в Arduino loop() функция считывает значение с датчика скорости:
Эта функция считывает аналоговый вход, которого нет у Raspberry Pi. Он имеет только цифровые порты.