Jelgenerátor AVR-el

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3310
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

HozzászólásSzerző: kapu48 » 2012. november 5. hétfő, 14:40

Legegyszerűbb, ha a másik ágat 1 külső inverterrel hajtod meg az eredeti jelről.
Ha beválik, ráérsz megírni a programot, két ellenütemű vezérelhető PWM-re.

A kérdés, amire nem ismerjük a választ: Hány fokos jel eltolás kel (90 vagy 180)?

Avatar
DOGMAN
Chipgyilok
Hozzászólások: 293
Csatlakozott: 2006. augusztus 27. vasárnap, 6:00
Tartózkodási hely: Balatonboglár

HozzászólásSzerző: DOGMAN » 2012. november 5. hétfő, 14:48

Ez lesz a megoldás, kész kapcsrajz:
http://www.x-simulator.de/forum/download/file.php?id=5368&mode=view/aircore%20controller%20PHCC_DOA_stepper_sch.png

Azt hogy a 360 fok melyik negyedében álljon a mutató a MOT1A-C lábakkal adom meg, a PWM kitöltéssel pedig azt hogy a 90 fokon belül hol álljon.

itt a kapcsolás doksija, igazságtáblával mindennek együtt: http://www.x-simulator.de/forum/download/file.php?id=5367

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3310
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

HozzászólásSzerző: kapu48 » 2012. november 5. hétfő, 15:03

Sajnos van valami ismeretlen név (PIC18F2XX)?
Innentől Passzolom!
:?

Avatar
DOGMAN
Chipgyilok
Hozzászólások: 293
Csatlakozott: 2006. augusztus 27. vasárnap, 6:00
Tartózkodási hely: Balatonboglár

HozzászólásSzerző: DOGMAN » 2012. november 5. hétfő, 15:13

Tök mindegy mi hajtja, nyugodtan be lehet helyettesíteni olyan AVR-el amin van 4 pwm csatorna.

Találtam kódot is igaz Arduinohoz (kommenteket én írtam bele, szerintem jól értem, majd Robi ha idetalál akkor ellenőrzi úgyis :)):

Kód: Egész kijelölése

void setAircore(float pos){

  // kiszámolja a szöget
  float sinCoilValue = 255*sin(pos/40.58);
  float cosCoilValue = 255*cos(pos/40.58);

  // eldönti melyik negyedben van, gyk. beállítja a tekercsek polaritását
  if (sinCoilValue<=0) {
    digitalWrite(14, LOW);
    digitalWrite(15, HIGH);
  }
  else {
    digitalWrite(14, HIGH);
    digitalWrite(15, LOW);
  }
  if (cosCoilValue<=0) {
    digitalWrite(8, LOW);
    digitalWrite(4, HIGH);
  }
  else {
    digitalWrite(8, HIGH);
    digitalWrite(4, LOW);
  }

  sinCoilValue = abs(sinCoilValue);
  cosCoilValue = abs(cosCoilValue);

  // kiküldi a tekercsekre a kiszámlot kitöltési tényezőt
  analogWrite(6, sinCoilValue);
  analogWrite(5, cosCoilValue);
}

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3310
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

HozzászólásSzerző: kapu48 » 2012. november 5. hétfő, 15:23

SIN,COS a Bascom is tud számolni.
A program többi része pedig már gyerekjáték.
8)

Neked 3 vagy 4 kivezetéses a műszered?
Ez a program mintha 6 kimenetet birizgálna.
Szerintem a lengőtekercs a kisebb ellenállású.
Hova kötöd a PWMet
:?:

Avatar
DOGMAN
Chipgyilok
Hozzászólások: 293
Csatlakozott: 2006. augusztus 27. vasárnap, 6:00
Tartózkodási hely: Balatonboglár

HozzászólásSzerző: DOGMAN » 2012. november 5. hétfő, 21:13

4 kivezetéses.
Köszi kapu48 a kérdéseket, azok nélkül sosem lett volna mega a megoldás.
http://www.youtube.com/watch?v=FKeWfvM8rvo&feature=youtube_gdata_player

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3310
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

HozzászólásSzerző: kapu48 » 2012. november 5. hétfő, 21:44

Szivesen!

Bár jobbára csak a képeket és rajzokat nézegettem.
Az adta a kérdéseket.

A rengeteg angol irományt nem volt időm megfejteni.

Végül nagyon szuperül sikerült megoldanod!
:lol:

Avatar
DOGMAN
Chipgyilok
Hozzászólások: 293
Csatlakozott: 2006. augusztus 27. vasárnap, 6:00
Tartózkodási hely: Balatonboglár

HozzászólásSzerző: DOGMAN » 2012. november 5. hétfő, 22:28

Még van gond vele azért, finomítani kell majd a kapcsolást.
L293DNE volt itthon és eléggé felforrósodik, L293B majd bírni fogja (1A-ig)
plusz kellenek védődiódák a tekercsekhez mert szerintem elég induktívan rugdossák irányváltáskor az L293-at.
Ráadásul egy óra két pwm-et használ hiszen a tekercseknek bizonyos állásban ellentétes kitöltési tényező kell, hogy legyen. Plusz a 4 láb a polaritásváltáshoz.
Egy Mega32P-vel 3 órát tudok vezérelni majd, és még marad 12 láb egy shift regiszterrel meghajtott 1 digites Sebességfokozat kijelzőre, és még pár visszajelző lámpára (olajnyomás, váltásjelző, stb...)

Avatar
DOGMAN
Chipgyilok
Hozzászólások: 293
Csatlakozott: 2006. augusztus 27. vasárnap, 6:00
Tartózkodási hely: Balatonboglár

HozzászólásSzerző: DOGMAN » 2012. november 8. csütörtök, 10:53

DOGMAN írta:Még van gond vele azért, finomítani kell majd a kapcsolást.
L293DNE volt itthon és eléggé felforrósodik, L293B majd bírni fogja (1A-ig)
plusz kellenek védődiódák a tekercsekhez mert szerintem elég induktívan rugdossák irányváltáskor az L293-at.

Ha valaki régi bontott műszert használna mint én:
A tekercsek áramfelvétele 10 mA, ezért gyanús lett az mérőóra eredeti panelja ami még mindig rajta van a műszer hátulján (ott is van egy IC, hogy az milyen jelet kér be azt nem sikerült megfejtenem), na szóval el kellett vágnom a nyákot a régi IC irányába, és most már nem melegszik, leszedni sajnos nem tudom róla, mert rá van szegecselve és a szegecsen belül vannak a kivezetések.


Vissza: “Bascom-AVR nyelvű programozás (AVR programozásának lehetőségei)”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég