Stránka 1 z 2

Filament Meter

Napsal: 26 kvě 2018, 23:37
od schusterji
Zdravím, pokouším se překompilovat tento soubor:
https://www.thingiverse.com/thing:2904046
Je určený pro čip ATTiny85, chtěl bych použít desku Arduino Nano. Protože jsem úplný začátečník, nějak se mi to nevede...
Jedná se o jednoduché počítadlo délky filamentu pro 3D tiskárnu. Pomůže někdo?
Předem děkuji.

Re: Filament Meter

Napsal: 27 kvě 2018, 11:38
od SkullKeep
Zkus tohle snad to pojede je to uprava pro Nano.

Kód: Vybrat vše

#include "U8x8lib.h"
#define inter 6 //interrupt PIN
U8X8_SSD1306_128X64_NONAME_SW_I2C u8x8( 8, 7, 9);// 8-clock PIN ,7- data PIN ,9-reset PIN

int pulse = 0;

void setup() {
  pinMode(inter, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(inter), stopa, CHANGE);
  u8x8.begin();
}

void loop() {
  u8x8.setFont(u8x8_font_victoriabold8_r);
  u8x8.drawString(1, 2, "Reset and drag");
  u8x8.setCursor(1, 4);
  u8x8.print(" fillament ");
  u8x8.setCursor(2 , 6);
  u8x8.print("cm: ");
  u8x8.setCursor(8, 6);
  u8x8.print(pulse / 3.53);
}

void stopa()
{
  pulse = pulse + 1;
}

Re: Filament Meter

Napsal: 27 kvě 2018, 15:40
od schusterji
Díky!!! Funkční!!!

Re: Filament Meter

Napsal: 27 kvě 2018, 18:34
od schusterji
Předčasná radost, kompilace OK, displej OK, ale impulzy to nepočítá(délku)..... :roll: :roll:

Re: Filament Meter

Napsal: 27 kvě 2018, 18:53
od AstroMiK
Arduino Nano má interrupt piny 2 a 3. Takže pin 6 fungovat nebude.
Pak by ještě ta přičítací proměnná měla být "volatile int".

Re: Filament Meter

Napsal: 27 kvě 2018, 19:12
od rejze69
Vůbec to nepočítá, nebo to je nesprávný výsledek? Jak je konstruovaný snímač impulsů? Máš to připojeno na pin interrupt? Uno a Nano by měly mít pin 2 a 3. A místo pulse = pulse +1 by mělo stačit pulse ++
Teď si nejsem jist, ale volba CHANGE při přerušení počítá jakoukoli změnu, takže to bude nejspíš počítat 2 pulsy na otáčku.
Pokud je to celý kód nemáš přerušení povolené. Implicitně je zakázané a povolí se voláním interrupt().

Re: Filament Meter

Napsal: 27 kvě 2018, 19:18
od schusterji
Jo,jo, piny 2 nebo 3 fungují. Zatím jsem připojil jen tlačítko+PULLUP odpor. Je pravda, že počítá sepnutí i rozepnutí

Re: Filament Meter

Napsal: 27 kvě 2018, 19:47
od rejze69
Pullup rezistor máš povolenej u input, tak by externi neměl být potřeba. Jestli chceš počítat jen náběžnou hranu použij místo CHANGE příkaz RISING jestli sestupnou FALLING. K tomu bych si vygooglil něco o debouncingu kvůli zákmitům tlačítka. Jestli je ale snímač bezkontaktní pak to nebudeš po pokusech s tlačítkem potřebovat.

Re: Filament Meter

Napsal: 27 kvě 2018, 20:14
od schusterji
OK, díky všem. Až bude vše jak má být (opto čidlo,atd), napíšu jak to dopadlo .

Re: Filament Meter

Napsal: 17 čer 2018, 12:46
od schusterji
Tak se po zkouškách s optozávorou znovu vracím. Vše funguje, ale má to chybu v tom, že to registruje oba směry, takže to vlastně počítá impuls i při zatažení zpět. Je mi jasné, že by to chtělo optozávory dvě aby byl rozlišen směr. Jako jednodušší mě napadl rotační enkodér a na jeho hřídel namontovat kolečko přímo. Nevím ale jak bych upravil program...... :shock: