Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino ILI9341 TFT Display Pitanja
#41
Nisam postavio ovaj gore kod nego sam koristio onaj sto sam gore postavio od ATmega samo sam pinove stavio oni koji moraju na STM32 i interrupte i to je to...vjerujem ti da ce malo bolje da radi ali nebih volio da ulazem vrijeme u nesto sto je lose kvalitete enkoder...narucit cu kvalitetniji pa se onda javljam. Hvala na pomoci dosad.
Reply
#42
Generalno su svi mehanicki enkoderi problem, da li si mozda razmisljao o optickom enkodru iz miša? Oni rade za klasu bolje od mehanickih.
Reply
#43
https://www.youtube.com/watch?v=dPBKTZw_xi4
Reply
#44
Trazim nekvi modul sa enkoderom koji ima sve na sebi (pullup otpornike i filterske kondenzatore), jer mi je cilj kada bude projekt gotov da se ima jedan pcb shield, sa kojeg se naruce moduli za arduino iz ebaya i lako se sklopi za malo love.

Zato mi nekvakva druga kombinacija ne dolazi u obzir jer zelim jednostavnost, jeftino da bude (osim enkodera jer tu vidim da nema sale), i da projekt bude cim jednostavniji.

Za opticki mis ni trebao korisnik koji ce da radi projekt da uzima van iz misa i stavlja u projekt sto mi nije user friendly..zato odustajem od te ideje, mada sigurno je precizniji....
Reply
#45
Evo da javim promjenio sam library i za čudo jedno...ovo sad radi perfektno! Dakle idem gore ili dolje, ide increment/decrement po 5, točno kako treba...brzo je nema kašnjenja, nema brljavljena displaya i maknuo sam one 100nF na A i B pinu i to radi perfektno...nisam znao da je ovo tako odlična stvar. Dakle nije da nevaljaju ovi kineski rotary encoderi nego treba odgovaraći library.

Jedino me još samo muči što moram točno dva puta da okrenem da se registrira jedan pomak...pa to sad gledam u kodu dali ima veze sa onim edgeovima, pa ako prije mene ko vidi kako srediti još to bilo bi odlično da se napiše.

Library je ovaj:

https://github.com/brianlow/Rotary

I ovo je demo kod koji sam stavio na LCD:

Code:
/*
   Rotary Encoder - Interrupt Example
   
   The circuit:
   * encoder pin A to Arduino pin 2
   * encoder pin B to Arduino pin 3
   * encoder ground pin to ground (GND)
*/

#include <LiquidCrystal.h>
#include <Rotary.h>

volatile int tempSet = 0;
int tempInt = 0;

// LCD interface pins
int RS = A4, EN = A5, D4 = A3, D5 = A2, D6 = A1, D7 = A0;
LiquidCrystal lcd(RS, EN, D4, D5, D6, D7);

Rotary r = Rotary(2, 3);

void setup() {
 r.begin();
 PCICR |= (1 << PCIE2);
 PCMSK2 |= (1 << PCINT18) | (1 << PCINT19);
 sei();
}

void loop() {
 if (tempSet != tempInt) {
   lcd.clear();
   lcd.print(tempSet);
   tempInt = tempSet;
 }
}

ISR(PCINT2_vect) {
 unsigned char result = r.process();
 if (result == DIR_NONE) {
   // do nothing
 }
 else if (result == DIR_CW) {
   tempSet = tempSet - 5;
 }
 else if (result == DIR_CCW) {
   tempSet = tempSet + 5;
 }
}
Reply
#46
Hehe, ispravna biblioteka, kod STM32 to ima sve hardwerski, znas kako tek to lepo radi Smile
Reply
#47
vjerujem ti mikikg, ali ja ti tek učim arduino jezik, znam da je STM32 moćnija sprava od arduino (mega328p) ali negdje se mora početi...za mene je prije par mjeseci bila enigma interrupti, a kamoli timeri...neznam dal se sjećaš teme kad sam u asm pokušao led blink sa timerima...naravno odustao sam od asm jer mi arduino pruzi sve sto mi treba meni početniku..a da cu doci jednog dana na STM32 hocu, ali to tek kad savladam osnove od arduina jer tu ima svašta...na arduino portovi su mi poznanica dok na STM32 kad pogledam oznake pinova sav sam izgubljen.

Zadao sam si projekt da napravim Digital Solder Station sa arduino pro mini sa OLED (treba da stigne), i da kasnije dodam hot gun air reflow pa da bude 2in1 i to sve sa jeftinim djelovima za arduino iz ebaya...znam da sada će neko reći pa imaš gotov STM32 modul solder station na ebayu..imam ali gdje je tu zabava i prepravljanje koda i najbitnije da se nauči nešto dok se dobi koristan uređaj.

Evo sada sam uspio srediti da za svaki jedan okret registrira se okret i poveca/smanji za 5 variabla...samo treba u Rotary.h uncomment linije:

#define HALF_STEP

I to je to, recompile...flash i radiii...i to znas kako? Glatko i bez ikakvih glitcheva..kao da imam rotary encoder od nekoliko stotina eura Smile

Bit će i video samo da snimim pa postavim...a nakon toga ide izgradnja MENU i dalje čitanje sa MAX6675 chipa i thermocouple temperature i PID regulacija (ima library za to)...pa će to biti brzo gotovo (a kad mi stigne thermocouple za arudino board onda cu moci da testiram tako da grijem fenom thermocouple i infracrvenim mjerim temp na njemu)
Reply
#48
Zanima me još jedna stvar oko MCU Compilera..gore imam u interruptu:

if then if then if then

ja razmisljam da stavim switch case pa me zanima sto je brze po pitanju izvrsavanja koda na MCU? Nekako sam priviknuti na swtich nego if upite...kod mi je onda organizaniji i lakše mi je pratiti workflow coda...

https://streamable.com/hy74f
Reply
#49
U prilogu sredeni HW interrupti za rotary encoder (INT0 i INT1) te je dodani za push button (SW) rotary encodera pinInterrupt pošto ATmega328p nema više HW interrupta (ima samo INT0 i INT1).

Savršeno radi kod, dodano i čitanje sa MAX6675 još samo da mi stigne thermocouple za testiranje temperature, i da sredim Timer1 koji će da to sve prati svakih 330ms (čitanje thermocouplera, osvježavanje LCD-a i interrupt routine za lijevo/desno encodera tj povećaj/smanji željenu temperaturu).

Zanima me za YIHUA 907 koji je najbolji način grijanja grijača? Jel AC ili DC?

Ima za arduino fini modul sa dva mosfeta koji su na PCB podebjano zalemljeni zbog hladđenja pa sam mislio ići na 24VDC i PWM kontrolu, mada kineska YIHUA ima trijaca koji radi sa AC grijačem pa neznam što je bolje tj zdravije za grijač optocouplera?

Ako ima koji modul za arduino sa trijakom da ima da se spoji na arduino za AC switching bilo bi odlično.

Ako treba da je AC ovaj modul:

https://www.ebay.com/itm/AC-Light-Dimmer...3459173590

Ali ima samo do MAX 2A znaci to nije baš upotrebljivo jer lemna ručka vuče oko 2A kada je hladna što bi bilo da je ovaj trijak preslabi pa treba jači kao i hladnjak.

A ako bi išlo DC PWM za grijač ovo napajanje umjesto toroida mislim da bi bilo savršeno za napajanje Arduina i grijača:

https://www.ebay.com/itm/AC-DC-Switching...3698184116


Attached Files Thumbnail(s)

Reply
#50
Evo ti link ka postu od Kecmana gde je bas pomenuo AC i DC napajanje rucki ...
https://forum.yu3ma.net/thread-873-post-...C#pid43809
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)