hjælp til servo kontrol med timer (Læst 129440x)

Offline pacman

  • Højpas filter
  • *****
  • Indlæg: 311
  • Antal brugbare Indlæg: 8
  • Jens Bauer (Forsøgs-person)
    • Vis profil
Sv: hjælp til servo kontrol med timer
« Svar #15 Dato: August 08, 2011, 02:04:58 »
Jeg tror lige jeg beholder nørde glæden her i starten men tusind tak for tilbudet. kan godt være jeg benytter mig af det hvis fingrene sidder forkert.

-Det regner jeg jo også med, når vi nu er i dette forum. ;)


Citér
prototyen tror jeg jeg holder i standard "store" komponenter og alm hul kort.

fornuftigt.. Det er nemmere at lave om på.

Citér
lige et sidste spørgsmål inden jeg i morgen begynder.
Vil det med nuværende 44 være muligt at smide et display på der viser antal ml.
det er jo bare værdien fra pot, med 1 decimal der skal vises ud fra en eller anden formel der omregner pot værdi så antal grader på servo stemmer med antal ml der trækkes ind i sprøjten. et sådan minidisplay kan vel ikke koste al verden

Uhm... Hvis du køber dem som 7-segment displays, skal der nok bruges en 3 stk, og prisen er cirka 6-7 kr. pr. stk. (Husk der er forskel på størrelserne og ben-placerinerne alt efter hvad du køber, og også om de har fælles anode eller fælles katode.)
Men for at drive sådan en fætter, skal du enten have flere ben på microcontrolleren, eller have sat en driver på pr. 7-segment (jeg kender desværre ikke drivere der ikke er SMD).

Som du ser vil det blive cirka 16-17 kr. ex. moms pr. display.
Det er muligt det er billigere at få speciel-fremstillet et LCD display i Kina, men jeg kender ikke priserne præcist...
-Du kan selvfølgelig også være heldig at finde et LCD display der lige passer til hvad du skal bruge.
Denne driver har kun brug for 2 benforbindelser på microcontrolleren. Skal du have 3 drivere på, kan du sætte alle 3 på samme 2 ben, bare du sikrer dig at A0, A1 og A2 er 'addresseret forskelligt'; mere herom, hvis du vælger denne løsning.

Jeg var lige ved at glemme det...

Fra R2 går der en forbindelse til Ben 9 på ATtiny'en.
Da du måler med ADC'en på denne, vil du garanteret få forkerte måleresultater, når du har programmerings-stikket sat i.
Hvis du vil gøre det lidt nemmere for dig selv, så flyt denne forbindelse til fx. ben 11, 12 eller 13.
-Så kan du bare lade ISP-stikket sidde i hele tiden.
ISP-benene (programmerings-benene) kan godt bruges som input, men da er det nok mest praktisk med digitale inputs (fx. IR modtagere, kontakter, trykknapper og lign.).
Det er nemmere at bruge dem som output ben (fx. til at styre relæer, transistorer eller lysdioder), så undgår du for megen bøvl.
« Senest Redigeret: August 08, 2011, 02:08:35 af pacman »

 

Offline jascore

  • Jordet Basic
  • **
  • Indlæg: 157
  • Antal brugbare Indlæg: 0
    • Vis profil
Sv: hjælp til servo kontrol med timer
« Svar #16 Dato: August 09, 2011, 18:16:38 »
Ok super :-P tak
laver lige ændringerne.

Jeg har sendt dig en privat besked men ved ikke om du har fået den da min sendte beskeder er tom, som om jeg intet har sendt ?

 

Offline pacman

  • Højpas filter
  • *****
  • Indlæg: 311
  • Antal brugbare Indlæg: 8
  • Jens Bauer (Forsøgs-person)
    • Vis profil
Sv: hjælp til servo kontrol med timer
« Svar #17 Dato: August 09, 2011, 18:25:11 »
Ok super :-P tak
laver lige ændringerne.

Jeg har sendt dig en privat besked men ved ikke om du har fået den da min sendte beskeder er tom, som om jeg intet har sendt ?

De er modtaget, svar er på vej tilbage. :)

-Foretrækker du at bruge breadboard (uden lodning) eller at lodde på prototype-printplade (Vero board) ?

 

Offline jascore

  • Jordet Basic
  • **
  • Indlæg: 157
  • Antal brugbare Indlæg: 0
    • Vis profil
Sv: hjælp til servo kontrol med timer
« Svar #18 Dato: August 10, 2011, 00:26:07 »
Ikke breadboard. vil hellere pare lode på et hulprint i baner

 

Offline jascore

  • Jordet Basic
  • **
  • Indlæg: 157
  • Antal brugbare Indlæg: 0
    • Vis profil
Sv: hjælp til servo kontrol med timer
« Svar #19 Dato: August 10, 2011, 20:28:31 »
Sidder og KÆMPER med koden og kom til at tænke på om jeg ikke kunne droppe den eksterne digitale timer. er det ikke muligt at sætte et potmeter på der giver 44 besked på om der skal gentages hver 6. - 16. - 18. eller 24. time kan man ikke få sådan en 4 possitions pot?
og så yderligere et pot der definerer om servoen skal køre 1 - 2 - 3 eller 4 gange ?
for så vil jeg smide en reset knap på så brugeren kan resette den til hvornår første dosis skal gives, og en bateribackup hvis strømmen skulle ryge

Du skal lige vide hvor taknemmelig jeg er for at du gider bruge lidt tid på at hjælpe mig igang  ;D
« Senest Redigeret: August 10, 2011, 20:41:28 af jascore »

 

Offline pacman

  • Højpas filter
  • *****
  • Indlæg: 311
  • Antal brugbare Indlæg: 8
  • Jens Bauer (Forsøgs-person)
    • Vis profil
Sv: hjælp til servo kontrol med timer
« Svar #20 Dato: August 10, 2011, 21:24:11 »
Du skal lige vide hvor taknemmelig jeg er for at du gider bruge lidt tid på at hjælpe mig igang  ;D

Du er da lige så velkommen som alle andre. -Det er derfor vi har dette alle tiders forum... :)

Citér
... besked på om der skal gentages hver 6. - 16. - 18. eller 24. time kan man ikke få sådan en 4 possitions pot?
og så yderligere et pot der definerer om servoen skal køre 1 - 2 - 3 eller 4 gange ?

Mht. indstilling.. Tænk meget simplere.
Der er lidt forskellige muligheder.
2 muligheder droppede lige ind i mine tanker:

Den første løsning: Brug 2 stk. encodere. De ligner potmetre, men i virkeligheden er det nogle digitale drejeknapper.
Der er 3 ben (ligesom der er på et potmeter), men de 2 udgangs-ben er enten "tændt" eller "slukkede". Det eneste de giver dig af signaler er en rækkefølge af 2 ben.

Her er nogle eksempler på rækkefølge:
00 01 11 10 00 01 11 10  (kører den ene vej)
00 10 11 01 00 10 11 01  (kører den anden vej)

Der er på de fleste encodere 12 signaler pr. fulde rotation, men man kan få nogle, som har flere.

OK. Så skal du have noget, så man kan se indstillingen.

Hvad med 4 lysdioder, og så et grafisk tryk ud for hver lysdiode; der kunne så stå:
6   16   18   24
og servoen... 4 lysdioder...
1   2   3   4

Den anden løsning (alternativ til encoderen) er en simplere og muligvis endnu bedre løsning:
"Tryk-knapper". 2 til interval, 2 til antal gange servoen kører.

Tryk-knapper og lysdioder skal nok bruge et par ekstra ben.
Faktisk, med et lille ADC-trick, kan man lave alle 4 tryk-knapper på ét i/o ben, men det kræver en modstand pr. tryk-knap)

Til 8 LEDs kan man godt nøjes med 6 i/o ben:
På de 2 første i/o ben (vi kalder dem for V1 og V2) sættes en alm. diode (fx. 1N4148) plus en passende modstand, og disse sættes fx. til anoden på 4 LEDs hver (række 1 kalder vi LED1...LED4, række 2 kalder vi LED5...LED8).
Af de andre i/o-ben, sættes i/o-ben A til katode på LED1 og LED5, i/o-ben B til katode på LED2 g LED6, i/o ben C til katode på LED3 og LED7, og sidst i/o-ben C til katode på LED4 og LED8.
Du vælger så med V1 og V2 at du vil arbejde på "øverste række", interval...
Dernæst vælger du hvilken kolonne af lysdioder du vil have til at lyse, tænder den, venter i X antal millisekunder, og slukker den igen.
Du vælger så med V1 og V2 at arbejde på "nederste række" (antal gange servoen skal køre), og igen vælger du kolonne, tænder, venter, slukker.

Dette gøres i dit timer-interrupt, fx. mellem 200 og 1000 gange i sekundet; helst ikke under, da man så vil kunne lægge mærke til flimmeret (det er det, som sker med kinesiske bil-baglygter; de flimrer da de kører omkring 50Hz) - flimmer virker 'billigt'.

-Det vil nu fint se ud som om de 2 lysdioder lyser hele tiden.

Alt efter hvordan du vender din 1N4148, kan du 'slukke' begge rækker ved enten at sætte både V1 og V2 høj, eller at sætte dem begge lav. Husk: Hvis du sender spændingen den forkerte vej, kan de med tiden futte af; men du finder hurtigt ud af hvilken måde der er rigtig.

Når du skal have én række til at lyse, skal V1 bare være modsat værdi af V2.

Det kan være at du på et tidspunkt synes at du vil have flere ben at lege med.
Er dette tilfældet, har en ATtiny261/461/861 16 i/o ben, hvoraf 10 af dem rimelig nemt kan bruges som ADC-ben (jeg anbefaler at undgå at bruge RESET benet, da du så kun vil kunne programmere chippen én gang, så skal du have en speciel enhed som kan slette chippen's indstillinger, for at kunne gen-programmere den; det har jeg altid selv undgået).

-Men stadig kan det lade sig gøre med en ATtiny44; og det er måske godt at holde det på denne pris-venlige chip, så længe det er muligt.
Du kan bruge nogle af MISO, MOSI og SCK benene til fx. V1 og V2.

-Men der er sådan set stadig ben nok til at du kan have en lysdiode på hvert ben; så skal du bare også have en modstand for hver lysdiode. På den ovennævnte måde behøver du kun 2 modstande og 2 dioder mod 8 modstande. (Hver SMD komponent koster ca. 1 kr. i montage ved maskin-placering, så selvom komponenten måske koster 0.04 øre ved antal på 20000, så skal montage-prisen jo oveni, og du mærker næsten ikke modstandens mængde-rabat).

Hver tryk-knap kunne så sidde ude i hver side af lysdiode-rækken (for at give en 'indlysende brugerflade')
-Du kunne også sætte 8 knapper på, men hver knap 'koster jo også knapper', når vi snakker produktion, for ud over kost-prisen, er der pris på montage, indkøb, osv. ;)

Endnu et alternativ til lysdioder, som du selv er inde på, et 4-positioners potmeter kunne bruges (en attenuator; disse har ofte 10 positioner, men det er ofte muligt at definere et 'stop'), og så kan de kobles til én ADC indgang hver. Det koster kun 2 chip-ben, og er måske den letteste løsning.

Du kunne også vælge at have en dreje-omskifter på; evt. koble denne over modstande, så de kan læses med ADC'en; dreje-omskifter løsningen vil jo også give dig mulighed for direkte at bruge i/o benene digitalt.

(Hovsa, det blev en lidt lang omgang)

 

Offline jascore

  • Jordet Basic
  • **
  • Indlæg: 157
  • Antal brugbare Indlæg: 0
    • Vis profil
Sv: hjælp til servo kontrol med timer
« Svar #21 Dato: August 11, 2011, 01:40:02 »
Prøver at holde tungen lige i munden  :o
umidelbart kan jeg godt lide løsningen med 4 knapper og 2 led rækker. hvilken løsning der er billigst og fylder mindst ved jeg ikke.
mit mål er at holde det under 250 pr enhed og en servo ligger på ca 100 for en nogenlunde kvalitet men kan fåes helt ned til 70 kr hvis det skulle være nødvendigt


Hvis jeg ikke skal bruge reset er der så en anden mulighed for at brugeren kan sætte timeren igang ved første dosering?

Lad os sige at brugeren lige er kommet hjem med enheden og vil lave den første dosering kl 18 og de efterfølgende dage kl 18. han kan selvfølgelig vente med at sætte stikket i til kl 18 mendet ville være lettere hvis der var sådan en START fra nu knap.



Så det jeg har er
en plus og minus knap for interval mellem dosering
en plus og minus knap for antal doseringer pr interval
og en start med første dosering NU knap
2 potmetre 1 til styring af impulser fra 0,8-2.0 ms 20 ms mellem impulser til udtrækning af sprøjten, og 1 til at justerer 0 punket (hvor sprøjten er trykket i bund) 0.8 - 1.1 ms med 20 ms interval

Det kan kun blive et hit :-P
 

 

Offline pacman

  • Højpas filter
  • *****
  • Indlæg: 311
  • Antal brugbare Indlæg: 8
  • Jens Bauer (Forsøgs-person)
    • Vis profil
Sv: hjælp til servo kontrol med timer
« Svar #22 Dato: August 11, 2011, 02:09:31 »
Prøver at holde tungen lige i munden  :o
umidelbart kan jeg godt lide løsningen med 4 knapper og 2 led rækker. hvilken løsning der er billigst og fylder mindst ved jeg ikke.

Jeg tror næsten tryk-knap udgaven vil være billigst, for du kunne faktisk være fræk og bore nogle Ø5mm huller og sætte en af disse igennem hullet, derefter få Skjern Serigrafi til at lave en 'japaner-film' (meget god kvalitet; jeg tror det er 20 kr. pr. stk i 2 farver, ca. 10x10 cm ved køb af 100); så kan denne klistres ind over og virke som 'forplade' (endda hen over knapper og lysdioder, for man kan også bestemme hvor der ikke skal være klister og hvor den skal være gennemsigtig).

Knapperne fåes med forskellige længder 'skaft'. Det gælder om at finde den rigtige/passende længde og også holde en fast afstand til fronten af kabinettet, gerne med skruer og afstands-stag, eller nogle støbte holdere, som presser på printet fra begge sider, og gerne bagsiden i nærheden af hver knap.

Citér
mit mål er at holde det under 250 pr enhed og en servo ligger på ca 100 for en nogenlunde kvalitet men kan fåes helt ned til 70 kr hvis det skulle være nødvendigt

Du skal have fat i Kina dér. Det kan være at en af mine brødre kan skaffe kontakt.

Citér
Hvis jeg ikke skal bruge reset er der så en anden mulighed for at brugeren kan sætte timeren igang ved første dosering?

Hmm. En ledning der stikker ud til en samlemuffe? -Jeg kan ikke lige komme på noget seriøst. ;)

Jeg tror at knapperne er så billige (kan fåes ned til under 1 kr/stk), så det kan være det nok er dén løsning.

Citér
Lad os sige at brugeren lige er kommet hjem med enheden og vil lave den første dosering kl 18 og de efterfølgende dage kl 18. han kan selvfølgelig vente med at sætte stikket i til kl 18 mendet ville være lettere hvis der var sådan en START fra nu knap.

Start-knap er 'trendy', tror jeg. :)


Så det jeg har er
en plus og minus knap for interval mellem dosering
en plus og minus knap for antal doseringer pr interval
og en start med første dosering NU knap
2 potmetre 1 til styring af impulser fra 0,8-2.0 ms 20 ms mellem impulser til udtrækning af sprøjten, og 1 til at justerer 0 punket (hvor sprøjten er trykket i bund) 0.8 - 1.1 ms med 20 ms interval

Det kan kun blive et hit :-P
[/quote]

Det lyder ikke så tosset.

(Jeg fik display-koden til at virke... Man skal også give display'et en 'tænd' kommando.. hmm.)

 

Offline jascore

  • Jordet Basic
  • **
  • Indlæg: 157
  • Antal brugbare Indlæg: 0
    • Vis profil
Sv: hjælp til servo kontrol med timer
« Svar #23 Dato: August 11, 2011, 20:25:29 »
gg ja det er fantastisk med sådan noget kode.
Jeg tod en multimediedesigner udd for nogle år tilbage det var der jeg lærte c++ og actionscript. Man kan godt blive lidt hysterisk når man sidder og fejlsøger efter et komma eller kolon. man stirer sig hurtigt blind

 

Offline pacman

  • Højpas filter
  • *****
  • Indlæg: 311
  • Antal brugbare Indlæg: 8
  • Jens Bauer (Forsøgs-person)
    • Vis profil
Sv: hjælp til servo kontrol med timer
« Svar #24 Dato: August 11, 2011, 22:05:05 »
gg ja det er fantastisk med sådan noget kode.
Jeg tod en multimediedesigner udd for nogle år tilbage det var der jeg lærte c++ og actionscript. Man kan godt blive lidt hysterisk når man sidder og fejlsøger efter et komma eller kolon. man stirer sig hurtigt blind

Ja, enig. En god idé til at undgå for megen vildledelse: Afslut alle dine .h filer med et semikolon.
-Også, inlines i header-filer, såsom...
inline CMyObject next(){ return(m_next); };
...(Ja, det eksempel er så et c++ eksempel, og er ikke relevant for AVR.

-Afslut linien med semikolon, selvom det ikke er nødvendigt.
For hvis der mangler semikolon i en header fil, så får du at vide at der er fejl i din c/c++ fil. ;)

Ovenstående lærte jeg, da jeg arbejdede hos Opera Software (web-browseren) for nogle år siden (det er alle tiders arbejdsplads, forresten).

 

Offline jascore

  • Jordet Basic
  • **
  • Indlæg: 157
  • Antal brugbare Indlæg: 0
    • Vis profil
Sv: hjælp til servo kontrol med timer
« Svar #25 Dato: August 12, 2011, 23:08:08 »
God aften. sidder og prøver at smide dioder og trykknapper på.
Bruger 3 adc pben til potmeter og og servo. dvs at jeg kun har 5 adc pben tilbage og måske kan jeg bruge reset til i/o port forstår ikke helt hvad de mener med at den kan bruges som svag, men der står den kan bruges hvis man programerer disable program (‘0’) RSTDISBL fuse
Men kan jeg bruge disse adc selv om at jeg programerer på disse ben ? skaber det ikke samme problem som da jeg havde R2 koblet på PA4?
hvad nu hvis jeg bruger dip switches de er vel digitale eller det samme som encoder. så kan jeg vel i princippet have en dipswitch med 8 kontakter på en ADC og så programerer mig ud af at de første 4 bestemmer interval i timer og de sidste 4 anlat gentagelser eller er det for omstændigt? (husk på at jeg stadig mangler finde ud af at programerer. kan selvfølgelig også fordele dem på 2 ben. men gør jeg det på 1 har jeg 4 ADC tilbage til at lave en eller visuel fremstilling af hvad der er valgt.

Det gør ikke så meget at "bruger programeringen" ikke er så let tilgængelig af 2 grunde. Når man har valgt hvad man vil doserer skal der egentligt ikke laves om på dette med mindre man får et større akvarie eller skifter væske der skal doseres. en anden grund er at man ikke af vanvare kommer til at ramme en knap (eller ungerne leger med den) og derved slår sit akvarie ihjel, så derfor ville det ikke gøre noget om disse muligheder kræver lidt "arbejde" at ændre.

Jeg har endvidre tænkt over at hvis 4 ADC ben ikke er nok til visuel fremstilling af valg så kan R2 fjernes ved at programerer "nulpunket" for servoen. R2 vil aligevel være et skjult potmeter som egentligt kun skal bruges ved kalibreringen af anlæget, og det foretager jeg inden det sælges.

så det vil sige at jeg har 6 ADC ben tilgængeligt plus i/o funktionen på reset

Hvis dip tager 1 ben eller 2 er der så nok tilbage til at køre 2 7-segment en for gentagelser i døgnet og 1 for gentagelser pr dosering ???

Det var vist også en lang en he he, håber du kan finde hoved og hale i det

Hov syntes lige at jeg læste mig til at 7segment display kræver 7 ben eller en controller.

Og lige en ting til. er 44'erns interne clock præcis nok eller bør der smides en krystal på.
med præcis nok mener jeg er det minutter eller sekunder eller msek +- i døgnet ?


 

« Senest Redigeret: August 12, 2011, 23:53:37 af jascore »

 

Offline pacman

  • Højpas filter
  • *****
  • Indlæg: 311
  • Antal brugbare Indlæg: 8
  • Jens Bauer (Forsøgs-person)
    • Vis profil
Sv: hjælp til servo kontrol med timer
« Svar #26 Dato: August 13, 2011, 03:14:39 »
Bruger 3 adc pben til potmeter og og servo. dvs at jeg kun har 5 adc pben tilbage og måske kan jeg bruge reset til i/o port forstår ikke helt hvad de mener med at den kan bruges som svag, men der står den kan bruges hvis man programerer disable program (‘0’) RSTDISBL fuse.
Men kan jeg bruge disse adc selv om at jeg programerer på disse ben ? skaber det ikke samme problem som da jeg havde R2 koblet på PA4?

Værre ... Du bør undgå helt at bruge RESET-benet. Her er lidt generel information på AVR microcontrollere.

Grunden er: Hvis du én gang har programmeret RSTDISBL, så kan du ikke 'afprogrammere' den.
-Da skal du have en ny chip, eller et slette-apparat (som jeg ikke har selv; det er 'apparat' nummer 2 på siden - jeg køber nok én på et tidspunkt).

Citér
Og lige en ting til. er 44'erns interne clock præcis nok eller bør der smides en krystal på.
med præcis nok mener jeg er det minutter eller sekunder eller msek +- i døgnet ?

Med et clock-krystal skal du regne med en unøjagtighed på 60PPM (Parts Per Million).
Det betyder, at du på 1000000 sekunder taber eller vinder 60 sekunder.
1000000 / 60 / 60 / 24 = 11.57 dage.
Clock-krystaller er det mest nøjagtige. Den indbyggede oscillator er et RC-led som skal kalibreres for hver chip. Dette skal gøres mens chippen er i temperaturen der bruges 'normalt'.

Der er et alternativ: At bruge en RTC-chip (Real Time Clock). Sådan en findes i fx. computere.

Du kan også bruge det system, som rigtig mange elektriske ure brugte for år tilbage:
Frekvensen på strømmen i stik-kontakten. Så vidt jeg ved, skulle denne være meget nøjagtig (mere nøjagtig end en RTC chip).

Citér
Bruger 3 adc pben til potmeter og og servo. dvs at jeg kun har 5 adc pben tilbage og måske kan jeg bruge reset til i/o port forstår ikke helt hvad de mener med at den kan bruges som svag, men der står den kan bruges hvis man programerer disable program (‘0’) RSTDISBL fuse.
Men kan jeg bruge disse adc selv om at jeg programerer på disse ben ? skaber det ikke samme problem som da jeg havde R2 koblet på PA4?

RESET benet bør ikke bruges.

Her er hvad der er tilovers:

2 digitale I/O ben: (digital=tænd/sluk) XTAL1 (PB0) og XTAL2 (PB1) kan eventuelt bruges som digitale I/O ben (fx. lysdioder). Hvis microcontrolleren skulle blive 'uprogrammerbar' (pga. forkerte 'fuse-bits'), kan du få en anden microcontroller til at tænde/slukke for to I/O-ben, og bruge disse som clock-krystal.

1 digital I/O-ben: PB2 (fornuftigt at bruge denne til Servo)

5 'sikre' ADC-ben, som ikke bliver forstyrret af ISP-stikket.

3 ADC ben, som vil blive forstyrret, hvis du har ISP-programmerings stikket sat i: ADC4 (PA4), ADC5 (PA5) og ADC6 (PA6).
-Disse 3 ben kan med fordel bruges til at styre lysdioder; IC'en kan fortsat programmeres.

I alt: 5 uforstyrrede ADC ben (som også kan bruges som i/o ben) + 6 digitale i/o ben.

Her er hvad du har brug for:

1 ADC ben til 4-5 tryk-knapper (eller i alt 4 dip-switch positioner); disse kan sættes i et R2R netværk, og sluttes samlet til det ene ADC ben. Der bør nok ikke sættes meget mere end 5 knapper på et ADC-ben (måske 6), for aflæsningen kan blive unøjagtig i de nederste bits. Det er en god idé at sætte ADC'en til 10-bits, aflæse flere gange og tage gennemsnittet. For 5 knapper eller under, burde 8-bit være nøjagtigt nok.

2 ADC-ben til Potmetre.

Citér
Hov syntes lige at jeg læste mig til at 7segment display kræver 7 ben eller en controller.

6 digitale I/O-ben til 8 LEDs. (2 til at vælge række med, 4 til at vælge kolonne med)

1 digitalt I/O-ben til servo motor.

I alt: 3 'sikre' ADC + 7 digitale

Dvs. vi trækker først de 3 ADC-ben fra; så har vi 2 uforstyrrede ADC-ben + 6 digitale i/o ben = 8 digitale i/o ben.
Vi bruger så 7 af disse digitale i/o-ben (6 til LEDs, 1 til knapper) og har nu 1 ubrugt ben til overs, som er et uforstyrret ADC ben.

Prøv at se mit diagram på et spil jeg lavede.. Jeg bruger et R2R netværk på en ATmega164's PC0...PC7.
Knap 1 bør så være hvor PC0 er, knap 2 hvor PC2 er, osv... Efter sidste forbundne knap (knap 5), bør du sætte en 1K til dit ADC-ben, og fra ADC-benet en 2K til GND; så får du igen max. 2.5V, som giver 'fuldt udslag'; ellers vil der være en knap du ikke kan aflæse, men det skulle du nok hurtigt finde ud af hvis der var bøvl med. ;)
R2R netværket virker simpelthen sådan: For hvert led, halveres spændingen.
Du kan også lave et noget simplere modstands-netværk:
Brug fx. følgende:
  4.02K modstand,
  2K modstand,
  1K modstand,
  499 ohm modstand
  200 ohm modstand
  100 ohm modstand

-Hver knap sættes så fra +5V til en af ovenstående modstande og videre til ADC-benet.
Fra ADC-benet til GND sættes så fx. en 100K modstand, for at vi har 0V, hvis der ikke er en knap som trykkes ned. Dette er billigere i komponenter end R2R netværket nævnt ovenover.

Citér
hvad nu hvis jeg bruger dip switches de er vel digitale eller det samme som encoder. så kan jeg vel i princippet have en dipswitch med 8 kontakter på en ADC

4 kontakter på en dip-switch skulle være nok, da 2 bits giver 4 kombinationer, og du gerne vil have 2 sæt med 4 kombinationer. :)
Programmering af dette er også forholdsvis let.
-Det ville være samme princip, som hvis du bruger en dreje-omskifter.

Citér
Jeg har endvidre tænkt over at hvis 4 ADC ben ikke er nok til visuel fremstilling af valg så kan R2 fjernes ved at programerer "nulpunket" for servoen. R2 vil aligevel være et skjult potmeter som egentligt kun skal bruges ved kalibreringen af anlæget, og det foretager jeg inden det sælges.

OK. Der kan du så bruge et trimpot. Disse trimpots er rigtig gode, du kan nok også bruge nogle mere 'unøjagtige' trimpots, de kræver bare fingerfærdighed at justere.

Citér
Det var vist også en lang en he he, håber du kan finde hoved og hale i det

Det ser ud til at jeg klarede mig (nogenlunde) ud af vanskelighederne denne gang. ;)
-Muligvis vrøvler jeg lidt hist og her, det er fordi jeg har flyttet rundt på mine besvarelser, så der kan nok være sket uheld/ulæseligheder, men jeg mener jeg har fanget de fleste af dem.

 

Offline jascore

  • Jordet Basic
  • **
  • Indlæg: 157
  • Antal brugbare Indlæg: 0
    • Vis profil
Sv: hjælp til servo kontrol med timer
« Svar #27 Dato: August 13, 2011, 16:15:45 »
Tror det ender med at jeg skal op på flere ben. så kan jeg også lave kontrolenheden så den styrre 4 pumper i stedet for en 44 pr pumpe så vil det nok være billigere med eks en atmega fremfor 4X44'er. desuden er jeg løbet ind i endnu en udfordring :-D man skal også kunne stille tiden mellem de individuelle pumper, da der er nogle tilsætningsstoffer der SKAL doseres med minimum 15 minutters mellemrum
endvidre har jeg så også bedre mulighed for at udvide med større display, for med tiden skal anlæget også tage sig af at tænde og slukke lyset, pumper og styre servoer der skal lave bølgevægelser. Men lige nu gælder det prototypen og programmet så er det helt fint med at begynde med 44'ern da det vigtigste lige nu er at få 1 pumpe til at køre korrekt, så går jeg ud fra at jeg kan tage de fleste erfaringer med over i en atmega.

Så prototypen undlader jeg også 7segment display. det kan altid komme på når det grundlæggende fungerer :-P

 

Offline pacman

  • Højpas filter
  • *****
  • Indlæg: 311
  • Antal brugbare Indlæg: 8
  • Jens Bauer (Forsøgs-person)
    • Vis profil
Sv: hjælp til servo kontrol med timer
« Svar #28 Dato: August 13, 2011, 17:59:02 »
...Hvorfor ikke lave to udgaver; en 'semi-pro' udgave og en super-udgave med alle klokker og fløjter ?

'semi-pro udgaven kan så være så presset i pris, som det nu lader sig gøre.
Pro udgaven kan være den "udviddede model", som kan styre flere pumper.

Det gode ved ATtiny44 er at den koster ikke ret meget, og dog har lige ben nok til de fleste behov, hvis man lægger det hele smart. Der er 4K program-hukommelse, så der burde være rigeligt, også til hvis der skal løses indviklede opgaver.. Skulle du være så heldig kun at bruge 2K, så kan du gå ned på en ATtiny24 (de er helt kompatible), eller du kan gå op på en ATtiny84, hvis du har brug for 8K.
-Samme gælder ATtiny261/461/861. Disse har jeg også liggende (ATtiny 461). ATtiny461 koster så kun et par kroner mere end ATtiny44, hvis man køber en håndfuld ad gangen.
Jeg forestiller mig at dit færdige print vil være udelukkende med SMD komponenter, da printet vil blive mindre, og dermed noget billigere at producere. -Bemærk at det er for det meste printet, som koster knapperne.

 

Offline jascore

  • Jordet Basic
  • **
  • Indlæg: 157
  • Antal brugbare Indlæg: 0
    • Vis profil
Sv: hjælp til servo kontrol med timer
« Svar #29 Dato: August 13, 2011, 19:09:15 »
God ide. har også tønkt på at lave dem i enkeltenheder så kan man dubygge med en enhed ad gangen og sætte dem sammen ala lego. (her jeg f.eks bruger 3d, så jeg kan se hvad og hvordan samt kender målene inden jeg hamre og banker gg)

Har efterhånden banket mig igennem og forstået timer tutorials med avr. Godt nok på en mega men princippet må være det samme
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=50106