AS5311 Bascom
- Jacek
- Posty: 384
- Rejestracja: 25 kwie 2016, 19:14
AS5311 Bascom
Witam - czy jest ktoś na forum kto ma doświadczenie z programową obsługą w Bascom'ie układu AS5311 - chciałbym zrobić DRO do mojej tokarki Tytan750 i ma to być właśnie w Bascom'ie - link do datasheet https://ams.com/documents/20143/36005/A ... b9224bab8c
Zdrowych Pogodnych Świąt Bożego Narodzenia oraz Szczęśliwego Nowego 2019 roku.
pozdrawiam Jacek.
Zdrowych Pogodnych Świąt Bożego Narodzenia oraz Szczęśliwego Nowego 2019 roku.
pozdrawiam Jacek.
- Henryk
- Posty: 348
- Rejestracja: 22 sty 2018, 17:20
Re: AS5311 Bascom
Witam Jacku .
Posiadam w pracy podobny sprzęt do twojej tokarki jako "zabawka " do doraźnych dłubanek . https://www.kammar24.pl/proma-tokarka-k ... 29875.html
Montowanie DRO do takich tokarek mija się z celem , stabilność takich maszynek pozostawia wiele do życzenia , sama konstrukcja imaka nożowego jest bardzo kiepska , przy obróbce stali wszystko aż jęczy .
Szkoda czasu i kasy na montaż DRO
Posiadam w pracy podobny sprzęt do twojej tokarki jako "zabawka " do doraźnych dłubanek . https://www.kammar24.pl/proma-tokarka-k ... 29875.html
Montowanie DRO do takich tokarek mija się z celem , stabilność takich maszynek pozostawia wiele do życzenia , sama konstrukcja imaka nożowego jest bardzo kiepska , przy obróbce stali wszystko aż jęczy .
Szkoda czasu i kasy na montaż DRO
- Jacek
- Posty: 384
- Rejestracja: 25 kwie 2016, 19:14
Re: AS5311 Bascom
Witam Henryku - ja myślę wręcz odwrotnie właśnie przy takich maszynkach DRO jest wręcz niezastąpione dla mnie taka tokarka jest w sam raz nie robię produkcji do zastosowań home made jest w sam raz.
pozdrawiam Jacek.
pozdrawiam Jacek.
- Henryk
- Posty: 348
- Rejestracja: 22 sty 2018, 17:20
Re: AS5311 Bascom
Pewnie ! , że taka tokareczka jest przydatna , mam do dyspozycji dwie , taką jak w linku i malutką do robótek bardzo małych
Niestety nim rozpocznę pracę muszę zawsze likwidować luzy by cokolwiek w miarę precyzyjnie wytoczyć .
Jeśli wystarczy Ci pomiar wzdłuż , to zamontuj sobie elektroniczną suwmiarkę pod suportem i masz gotowca
Liniały magnetyczne masz oryginalne ?
Zamiast się męczyć , zamontuj sobie coś takiego https://www.sklep-arkom.net.pl/pl/p/ACC ... 04-11/6090
Tu coś lepszego http://sklep.cncprofi.com/linial-magnet ... 01-mm.html
Ceny w katalogu na stronce , całkiem przystępne .
Niestety nim rozpocznę pracę muszę zawsze likwidować luzy by cokolwiek w miarę precyzyjnie wytoczyć .
Jeśli wystarczy Ci pomiar wzdłuż , to zamontuj sobie elektroniczną suwmiarkę pod suportem i masz gotowca
Liniały magnetyczne masz oryginalne ?
Zamiast się męczyć , zamontuj sobie coś takiego https://www.sklep-arkom.net.pl/pl/p/ACC ... 04-11/6090
Tu coś lepszego http://sklep.cncprofi.com/linial-magnet ... 01-mm.html
Ceny w katalogu na stronce , całkiem przystępne .
- Jacek
- Posty: 384
- Rejestracja: 25 kwie 2016, 19:14
Re: AS5311 Bascom
Witam - mam zakupiona taśmę magnetyczną MB100 001 https://www.siko-global.com/en-pl/produ ... ds/mb100-1
a tu link do strony z wykorzystaniem AS5311 ale na STM'ie https://www.usinages.com/threads/dro-ma ... se.102109/
oraz filmik https://www.youtube.com/watch?v=HpDoiKzqkWI&t=45s
pozdrawiam Jacek.
P.S. i jeszcze jeden filmik - wersja finalna https://www.youtube.com/watch?v=G3Ak-3ICzbk
a tu link do strony z wykorzystaniem AS5311 ale na STM'ie https://www.usinages.com/threads/dro-ma ... se.102109/
oraz filmik https://www.youtube.com/watch?v=HpDoiKzqkWI&t=45s
pozdrawiam Jacek.
P.S. i jeszcze jeden filmik - wersja finalna https://www.youtube.com/watch?v=G3Ak-3ICzbk
- Pikczu
- Posty: 390
- Rejestracja: 17 sie 2015, 13:46
- Lokalizacja: Dublin, Ireland
- Kontakt:
- Pikczu
- Posty: 390
- Rejestracja: 17 sie 2015, 13:46
- Lokalizacja: Dublin, Ireland
- Kontakt:
Re: AS5311 Bascom
Ha !!
Lepiej 30 sekund szukania i znalazłem czyjąś prace magisterska właśnie w Bascomie.
https://wstag.jcu.cz/StagPortletsJSR168 ... dno=100217
Lepiej 30 sekund szukania i znalazłem czyjąś prace magisterska właśnie w Bascomie.
https://wstag.jcu.cz/StagPortletsJSR168 ... dno=100217
- niveasoft
- Posty: 1216
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: AS5311 Bascom
Widzę, że ta akcja wyszła super i to bardzo cieszy
A na najmniejszym marginesie to mieszkałem kiedyś tak blisko granicy z Czechami, że czasem lepiej było oglądać "NOVA" albo "Czeska televizi uvadi" a radia to lepiej smigały Hellax i Kiss Morawa Także gdyby coś z tego trzeba było przetłumaczyć to ja to czytam jak polski.
A na najmniejszym marginesie to mieszkałem kiedyś tak blisko granicy z Czechami, że czasem lepiej było oglądać "NOVA" albo "Czeska televizi uvadi" a radia to lepiej smigały Hellax i Kiss Morawa Także gdyby coś z tego trzeba było przetłumaczyć to ja to czytam jak polski.
- Jacek
- Posty: 384
- Rejestracja: 25 kwie 2016, 19:14
Re: AS5311 Bascom
Witam - dzięki Koledzy za pomoc - będę próbował trenować ten program co podesłał Paweł.
pozdrawiam Jacek.
pozdrawiam Jacek.
- Jacek
- Posty: 384
- Rejestracja: 25 kwie 2016, 19:14
Re: AS5311 Bascom
Witam ponownie - Bartku czy możesz jak czas pozwoli dodać komentarze w języku polskim.
pozdrawiam Jacek.
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- '---
- ' (c) 2009
- '---
- 'AS5311
- $regfile = "m32def.dat"
- $crystal = 1000000
- $baud = 19200
- '$sim
- ' ****************************
- '* LCD nastavení *
- ' ****************************
- '$lib "LCD4.lbx" ' use the alternative library
- 'this is like always, define the kind of LCD
- Config LCD = 16 * 2
- Config Lcdpin = Pin , Rs = Portb.5 , E = Portb.4 , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3
- Config Porta = Output
- Config Portc = Input
- Config Pina.0 = Input 'DO ... data out
- Config Porta.1 = Output 'CS ... chip Select
- Config Porta.2 = Output 'CLK ... clock
- 'data out
- 'Data_out Alias Pina.0
- 'Chip select
- 'Cs Alias Pina.1
- 'hodiny
- 'Clk Alias Pina.2
- Declare Sub Poloha(byref P As Integer)
- Declare Sub Determinuj_polohu(p_old As Integer , P_new As Integer , Sm As Integer , Pp As Integer)
- Declare Sub Cti_data(byref Pozice As Integer)
- Declare Sub Ssi_init
- Declare Sub Ssi_close
- Dim Pozice As Integer
- Dim Poloha As Long
- Dim Vzd_pom As Long
- Dim Vzdalenost As Long
- Dim Mm2 As Integer
- Dim Draha As String * 16
- Dim Pom_str As String * 16
- Dim Pom_s As Single
- Dim Pozice_old As Integer
- Dim Pozice_new As Integer
- Dim Pozice_start As Integer
- Dim Smer As Integer
- Dim Priznak As Integer
- Dim Fix_prechodu As Bit
- Dim Pocitadlo As Integer
- Dim Ocf As Byte
- Dim Cof As Byte
- Dim Lin As Byte
- Dim Mag_inc As Byte
- Dim Mag_dec As Byte
- Dim Parita As Byte
- Dim Poms As String * 16
- 'určení výchozí polohy při startu čipu
- Pocitadlo = 0
- Mm2 = 0
- Call Poloha(pozice_start)
- Pozice_old = Pozice_start
- 'main
- 'PINC.7 reset. tlačítko
- Do
- 'stisk reset tlačítka
- Incr Pocitadlo
- If Pinc.7 = 1 Then
- 'určení výchozí pozice
- Mm2 = 0
- Call Poloha(pozice_start)
- Pozice_old = Pozice_start
- End If
- 'Waitus 10
- Call Poloha(pozice_new)
- Call Determinuj_polohu(pozice_old , Pozice_new , Smer , Priznak)
- If Smer = 0 Then
- If Priznak = 0 Then
- 'vzdálenost roste v rámci 2mm
- Vzd_pom = Mm2 * 4096 : Vzd_pom = Vzd_pom - Pozice_start
- Vzdalenost = Vzd_pom + Pozice_new
- Else
- 'vzdálenost roste přes 2mm
- Incr Mm2
- Vzd_pom = Mm2 * 4096 : Vzd_pom = Vzd_pom - Pozice_start
- Vzdalenost = Vzd_pom + Pozice_new
- End If
- Else
- If Priznak = 0 Then
- 'vzdálenost klesá v rámci 2mm
- Vzd_pom = Mm2 * 4096 : Vzd_pom = Vzd_pom - Pozice_start
- Vzdalenost = Vzd_pom + Pozice_new
- Else
- 'vzdálenost klesá přes 2mm
- Decr Mm2
- Vzd_pom = Mm2 * 4096 : Vzd_pom = Vzd_pom - Pozice_start
- Vzdalenost = Vzd_pom + Pozice_new
- End If
- End If
- 'Waitus 10
- 'hodnota na display se zobrazí každý 20 cyklus
- If Pocitadlo > 50 Then
- Pocitadlo = 0
- Cls
- LCD Pozice_new
- Lowerline
- Pom_s = Vzdalenost / 2048
- LCD Fusing(pom_s , "#.###")
- End If
- Pozice_old = Pozice_new
- Loop
- End
- ' ****************************
- 'určí směr pohybu a překrocění hranice 0 /-/ 4095
- ' ****************************
- Sub Determinuj_polohu(p_old As Integer , P_new As Integer , Sm As Integer , Pp As Integer)
- 'Sm ... směr
- ' 0 = vzdaluji se od reference
- ' 1 = přibližuji se
- 'Pp ... příznak přechodu přes 4095
- ' 0 = nepřekročil jsem 4095
- ' 1 = překročil jsem přes 4095
- Dim Delta As Single
- Dim Sgn_delta As Single
- Dim Abs_delta As Single
- Delta = P_new - P_old
- Abs_delta = Abs(delta)
- Sgn_delta = Sgn(delta)
- Select Case Delta
- 'delta je kladné nebo nula
- Case Is >= 0
- If Abs_delta < 1000 Then
- 'vzdálenost roste a jsem v rozsahu 2 mm
- Sm = 0 : Pp = 0
- Else
- 'vzdálenost klesá a překročil jsem 2 mm
- Sm = 1 : Pp = 1
- End If
- 'delta je záporné
- Case Else
- If Abs_delta < 1000 Then
- 'vzdálenost klesá a jsem v rozsahu 2 mm
- Sm = 1 : Pp = 0
- Else
- 'vzdálenost klesá a překročil jsem 2 mm
- Sm = 0 : Pp = 1
- End If
- End Select
- End Sub
- ' ****************************
- 'vyčte polohu z čipu
- ' ****************************
- Sub Poloha(p As Integer)
- 'inicializace čipu
- Ssi_init
- 'čtení hodnoty
- Call Cti_data(p)
- 'ukončení komunikace s čipem
- Ssi_close
- End Sub
- ' ****************************
- 'Přečte data z měřiče, bit po bitu
- ' ****************************
- Sub Cti_data(byref Pozice As Integer)
- Dim Pom As Byte
- 'Pin 2 portu A jsou hodiny
- 'Proměnná Pozice vrací hodnotu
- Pozice = 0
- 'D11
- Reset Porta.2
- If Pinc.0 = 1 Then
- Pozice = Pozice + 1
- End If
- Set Porta.2
- 'D10
- Pozice = Pozice * 2
- Reset Porta.2
- If Pinc.0 = 1 Then
- Pozice = Pozice + 1
- End If
- Set Porta.2
- 'D9
- Pozice = Pozice * 2
- Reset Porta.2
- If Pinc.0 = 1 Then
- Pozice = Pozice + 1
- End If
- Set Porta.2
- 'D8
- Pozice = Pozice * 2
- Reset Porta.2
- If Pinc.0 = 1 Then
- Pozice = Pozice + 1
- End If
- Set Porta.2
- 'D7
- Pozice = Pozice * 2
- Reset Porta.2
- If Pinc.0 = 1 Then
- End If
- Set Porta.2
- 'D6
- Pozice = Pozice * 2
- Reset Porta.2
- If Pinc.0 = 1 Then
- Pozice = Pozice + 1
- End If
- Set Porta.2
- 'D5
- Pozice = Pozice * 2
- Reset Porta.2
- If Pinc.0 = 1 Then
- Pozice = Pozice + 1
- End If
- Set Porta.2
- 'D4
- Pozice = Pozice * 2
- Reset Porta.2
- If Pinc.0 = 1 Then
- Pozice = Pozice + 1
- End If
- Set Porta.2
- 'D3
- Pozice = Pozice * 2
- Reset Porta.2
- If Pinc.0 = 1 Then
- Pozice = Pozice + 1
- End If
- Set Porta.2
- 'D2
- Pozice = Pozice * 2
- Reset Porta.2
- If Pinc.0 = 1 Then
- Pozice = Pozice + 1
- End If
- Set Porta.2
- 'D1
- Pozice = Pozice * 2
- Reset Porta.2
- If Pinc.0 = 1 Then
- Pozice = Pozice + 1
- End If
- Set Porta.2
- 'D0
- Pozice = Pozice * 2
- Reset Porta.2
- If Pinc.0 = 1 Then
- Pozice = Pozice + 1
- End If
- Set Porta.2
- 'čtení stavových bitů
- 'OCF
- 'Waitus 10
- Reset Porta.2
- Ocf = Pinc.0
- Set Porta.2
- 'COF
- 'Waitus 10
- Reset Porta.2
- Cof = Pinc.0
- Set Porta.2
- 'LIN
- 'Waitus 10
- Reset Porta.2
- Lin = Pinc.0
- Set Porta.2
- 'Mag_INC
- 'Waitus 10
- Reset Porta.2
- Mag_inc = Pinc.0
- Set Porta.2
- 'Mag_DEC
- 'Waitus 10
- Reset Porta.2
- Mag_dec = Pinc.0
- End Sub
- ' ****************************
- ' ****************************
- Sub Ssi_init
- 'A.1 CS ¨¨¨¨¨______
- 'A.2 CLK ¨¨¨¨¨¨¨__¨¨
- ' us 2 1 1 1
- 'PortA.2 CLK ... clock
- Set Porta.2
- 'PortA.1 CS ... chip select
- Set Porta.1
- Waitus 2
- Reset Porta.1
- Waitus 1
- Reset Porta.2
- Waitus 1
- Set Porta.2
- Waitus 1
- End Sub
- ' ****************************
- ' ****************************
- Sub Ssi_close
- 'A.1 CS ___¨¨¨¨
- 'A.2 CLK _¨¨¨¨¨¨
- ' us 1 2
- 'čtu ^
- 'PortA.2 CLK ... clock
- 'PortA.1 CS ... chip select
- 'Parita
- Set Porta.2
- Parita = Pinc.0
- Waitus 1
- Set Porta.1
- Waitus 2
- End Sub
- ' ****************************
pozdrawiam Jacek.