Se sei già registrato           oppure    

Orario: 26/04/2024 06:30:41  

 

Energia Alternativa ed Energia Fai Da Te > Arduino


Contagiri per trapano a colonna (HELP)
FinePagina

RAUNARDE
GigaWatt


Gruppo:Utente
Messaggi:1225

Stato:



Inviato il: 26/04/2018 17:54:08

Ciao a tutti, avrei bisogno di modificare uno sketch che mi funziona correttamente con un display 20x4 (I2C) ma non so come farlo funzionare con un 4 digit 7 display pilotati con CLK e DIO (TM1637 il tipo di display)

Il codice è preso da internet, ho solo modificato la parte del display per adattarlo al mio rispetto quello che montava.
Poi ho cercato in tutti i modi di trovare come far scrivere al display a 4 numeri a led la velocità che rilevo con un sensore ad effetto Hall, ma non ci riesco.
Dichiaro da subito che sto cercando di imparare arduino anche se è una cosa "Ardua" al momento.
spero qualcuno possa aiutarmi
Grazie mille

// include the library code:
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
#include <Arduino.h>


// Module connection pins (Digital Pins)

int sensorPin = 4; //hall effect
int ledpin = 13;
float revs;
float rpm;
volatile byte rpmcount;
long previousmicros = 0;
long interval = 1000000;

// includere la libreria:  



// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
/*
* LCD RS pin to digital pin 8
* LCD Enable pin to digital pin 9
* LCD D0 pin to digital pin 1
* LCD D1 pin to digital pin 10
* LCD D2 pin to digital pin 11
* LCD D3 pin to digital pin 12
* LCD D4 pin to digital pin 4
* LCD D5 pin to digital pin 5
* LCD D6 pin to digital pin 6
* LCD D7 pin to digital pin 7
* LCD R/W pin to ground
* 10K resistor:
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)
*/

void setup() 
{
  // setup serial - diagnostics - port
  Serial.begin(115200);
  // setup pins
  pinMode(sensorPin, INPUT);
  pinMode(ledpin, OUTPUT);
  // setup interript
  attachInterrupt(0, RPM, RISING);

}

void RPM()
{
  rpmcount++;
} 

void loop() 
{
  int k;
  uint8_t data = rpm;
  unsigned long currentmicros = micros();
  int sensorValue = digitalRead(sensorPin);
  if (currentmicros - previousmicros > interval)  {
    previousmicros = currentmicros;

    detachInterrupt(0);
    revs=1000000.0/rpmcount;
    rpm = 60000000.0/revs;
    Serial.print("rpmcount\t");
    Serial.print(rpmcount);
    Serial.print(" rpm\t");
    Serial.println(rpm);
    lcd.clear();
    lcd.begin(16, 2);
    lcd.print("  DRILL  SPEED");
    lcd.setCursor(9, 1);
    lcd.print(" RPM");
    lcd.setCursor(3,1);
    lcd.print(rpm,0);
     display.setSegments(data);
    rpmcount=0;
    attachInterrupt(0, RPM, RISING);
  }

  if (sensorValue == 0) {
    digitalWrite (ledpin, HIGH);
  }
  else {
    digitalWrite(ledpin, LOW);  
  }

}

 
 InizioPagina
 

Versione Mobile!

Home page       TOP100-SOLAR      Home page forum