Digitální mikrometr

10.10.2019

Vzhledem k tomu že mikrometr měl konektor digitálního výstupu, a nechtělo se mi shánět, ani nijak řešit odnímatelné provedení. Vyvedl jsem to napřímo kablíkem s konektorem dle obrázku. 

Data vycházející z mikrometru na osciloskopu. 

Na snímcích je jasně vidět že červená stopa jsou hodiny a žlutá stopa data.

1. obrázek je vynulovaný displej mikrometru

2. obrázek je detail pro lepší rozpoznání

3. na displeji mikrometru je nějaký údaj.


Ještě ukázka z logického analizeru.

Na displeji mikrometru je 0

Na displeji mikrometru je 3.26

2+4+64+256 = 326


Pro připojení mikrometru k Arduinu jsem musel vyrobit zesilovače úrovní ... z mikrometru vystupuje LOG.1 v hodnotě cca. 1.5V

Arduino program - čtení hodnoty z mikrometru


// definice připojení
#define CLK_pin  2
#define Data_pin 3

uint8_t pocitadlo = 0;
uint32_t data_mikrometr;

void setup()
{
// nastavení vývodů
pinMode(CLK_pin, INPUT);
pinMode(Data_pin, INPUT);
Serial.begin(9600);
}

void loop()
{
if (digitalRead(CLK_pin) == 1) // pokud je CLK_pin == 1 pokračuj
{
// pocitadlo = 0; // vynuluj počítadlo bitu

while (pocitadlo <= 23)
// pokračuj v teto smyčce dokud bude hodnota "počítadlo" vyhovovat podmínce
{

while (digitalRead(CLK_pin) == 1)
{
// čekej dokud je CLK_pin == 1
}

if (digitalRead(Data_pin) == 0) // pokud jsou Data_pin == 0
{
data_mikrometr = (data_mikrometr | (1 << pocitadlo));
// posuň 1 o hodnotu "pocitadla" vlevo a pripočti k "data_mikrometr"
}

while (digitalRead(CLK_pin) == 0)
{
// čekej dokud je CLK_pin == 0
}

pocitadlo++; // zvětši hodnotu počitadlo o 1
}
Serial.println(data_mikrometr);
data_mikrometr = 0; // vynuluj naměřenou hodnotu
pocitadlo = 0; // vynuluj počítadlo bitů
}
}

Stylový byt © Všechna práva vyhrazena 2019
Vytvořeno službou Webnode
Vytvořte si webové stránky zdarma! Tento web je vytvořený pomocí Webnode. Vytvořte si vlastní stránky zdarma ještě dnes! Vytvořit stránky