-
41. Data: 2015-12-29 20:34:39
Temat: Re: Atmega i problem z czujnikiem pojemnościowym
Od: AlexY <a...@i...pl>
janusz_k pisze:
> W dniu 2015-12-28 o 02:42, AlexY pisze:
>> janusz_k pisze:
>>> W dniu 2015-12-22 o 00:41, AlexY pisze:
>>> A to widziałeś?
>>> http://www.elektroda.pl/rtvforum/topic3088760.html
>>
>> Dziwne rozwiązanie, po co tam tranzystor? Sprawdzałem podobny układ,
> Przecież pisze że podłączony do rozładowania kondesatora przez 220om.
Widzę co on robi, tylko nadal nie widzę sensu żeby robić to przez
tranzystor, to nie jest 2200uF, nic nie upali, to samo robi się każdą
inną metodą, i to bez opornika.
>> ogólnie wzorowałem się na http://www.elektronik-labor.de/AVR/Touch.html
>> aczkolwiek nie znam szwabskiego, tak że mogłem coś pomieszać.
> Ale tam masz wszystko opisane i nawet na programie się można wzorować.
Program programem a opisy, zastosowania i sztuczki/kruczki w części
opisowej.
--
AlexY
http://faq.enter.net.pl/simple-polish.html
http://www.pg.gda.pl/~agatek/netq.html
-
42. Data: 2015-12-29 22:30:48
Temat: Re: Atmega i problem z czujnikiem pojemnościowym
Od: Marek <f...@f...com>
On Tue, 29 Dec 2015 12:28:14 +0100, Uzytkownik <a...@s...pl>
wrote:
> Powielasz bzdurne mity głoszone przez ludzi, którzy nigdy nie mieli
> styczności z Bascomem i którzy utożsamiają go Basiciem.
Mity??. Bascom to jest kpina a nie język programowania. Pisałem o tym
wielorokrotnie i zawsze będę to powtarzał.
Ograniczenie dwóch operandow i jednego operatora, nie da się zapisać
wyrażenia x=2*z+y. Nie ma żadnej optymalizacji kodu bo to nie jest
nawet kompilator tylko konsolidator asemblerowych biliotek i makr
tworzonych bez zachowania żadnych konwencji w podawaniu argumentow
procedur/funkcjj. Już powyższe dwa zarzuty zdradzają, że twórcy
owego pseudojezyka nie mieli żadnej styczności i doświadczenia z
profesjanalnymi narzędziami do analizy leksykalnej i składniowej
(flex, bison). Przez co wymyślając od nowa koło stworzyli takiego
potworka.
Ale to nie wszystko: brak możliwości pisania bibliotek (nie
asemblerowych) co w programiście wpaja ograniczenie "jednego
programu" przez co taki później ma problem z ogarnięciem bardziej
skomplikowanych rzeczy np. wielizadaniowości.
Bascom niestety produkuje kaleki programistyczne, których rozwój
zatrzymuje się na jednej rodzinie mcu z jednym pseudojęzykiem.
--
Marek
-
43. Data: 2015-12-29 22:36:28
Temat: Re: Atmega i problem z czujnikiem pojemnościowym
Od: janusz_k <J...@o...pl>
W dniu 2015-12-29 o 20:34, AlexY pisze:
> janusz_k pisze:
>> W dniu 2015-12-28 o 02:42, AlexY pisze:
>>> janusz_k pisze:
>>>> W dniu 2015-12-22 o 00:41, AlexY pisze:
>>>> A to widziałeś?
>>>> http://www.elektroda.pl/rtvforum/topic3088760.html
>>>
>>> Dziwne rozwiązanie, po co tam tranzystor? Sprawdzałem podobny układ,
>> Przecież pisze że podłączony do rozładowania kondesatora przez 220om.
>
> Widzę co on robi, tylko nadal nie widzę sensu żeby robić to przez
> tranzystor, to nie jest 2200uF, nic nie upali, to samo robi się każdą
> inną metodą, i to bez opornika.
No nie, jak zrobisz to portem, to zanim go przełączysz na wejście to
rezystory wewnętrzne rozładują ci kondesator, widocznie nie dało
się tego ominąć i dlatego dołożyli tranzystor.
>
>>> ogólnie wzorowałem się na http://www.elektronik-labor.de/AVR/Touch.html
>>> aczkolwiek nie znam szwabskiego, tak że mogłem coś pomieszać.
>> Ale tam masz wszystko opisane i nawet na programie się można wzorować.
>
> Program programem a opisy, zastosowania i sztuczki/kruczki w części
> opisowej.
Ale dość prosto opisane, da się po swojemu napisać program.
--
Pozdr
Janusz_K
-
44. Data: 2015-12-30 13:39:16
Temat: Re: Atmega i problem z czujnikiem pojemnościowym
Od: AlexY <a...@i...pl>
janusz_k pisze:
> W dniu 2015-12-29 o 20:34, AlexY pisze:
>> janusz_k pisze:
>>> W dniu 2015-12-28 o 02:42, AlexY pisze:
>>>> janusz_k pisze:
>>>>> W dniu 2015-12-22 o 00:41, AlexY pisze:
>>>>> A to widziałeś?
>>>>> http://www.elektroda.pl/rtvforum/topic3088760.html
>>>>
>>>> Dziwne rozwiązanie, po co tam tranzystor? Sprawdzałem podobny układ,
>>> Przecież pisze że podłączony do rozładowania kondesatora przez 220om.
>>
>> Widzę co on robi, tylko nadal nie widzę sensu żeby robić to przez
>> tranzystor, to nie jest 2200uF, nic nie upali, to samo robi się każdą
>> inną metodą, i to bez opornika.
> No nie, jak zrobisz to portem, to zanim go przełączysz na wejście to
> rezystory wewnętrzne rozładują ci kondesator, widocznie nie dało
> się tego ominąć i dlatego dołożyli tranzystor.
Jakie rez wew? Port jest przełączany w stan wysokiej impedancji
(rezystory podciągające odłączone) i tyle, mam wrażenie że ten układ
robił ktoś nie do końca świadomy tematu, nie znam C a chyba na tym
bazuje arduino ale widzę tam 2 rzeczy świadczące o tym że autor projektu
stawia pierwsze kroki w mikrokontrolerach:
1. ładowanie wyłącza dopiero na koniec cyklu, po otrzymaniu stanu
wysokiego na wejściu (w tym momencie powinien przerwać), po 100mS
debouncingu i po ustawieniu switchstate.
2. rozładowanie potrwa prawdopodobnie 1/4 uS bo zaraz po włączeniu
tranzystora bez żadnego opóźnienia jest on wyłączany. IMHO wpisanie zera
w port pomiarowy (zaraz sprawdzę czy trzeba przełączać pin na wyjście)
będzie skuteczniejsze a zaoszczędzi się jeden port.
>>>> ogólnie wzorowałem się na http://www.elektronik-labor.de/AVR/Touch.html
>>>> aczkolwiek nie znam szwabskiego, tak że mogłem coś pomieszać.
>>> Ale tam masz wszystko opisane i nawet na programie się można wzorować.
>>
>> Program programem a opisy, zastosowania i sztuczki/kruczki w części
>> opisowej.
> Ale dość prosto opisane, da się po swojemu napisać program.
Toteż napisałem i działa jak działa czyli ma za małą czułość, dzisiaj
robię wersję na ADC, chyba że znowu zmarnuję dzień na czołgi...
--
AlexY
http://faq.enter.net.pl/simple-polish.html
http://www.pg.gda.pl/~agatek/netq.html
-
45. Data: 2016-01-08 22:26:19
Temat: Re: Atmega i problem z czujnikiem pojemnościowym
Od: AlexY <a...@i...pl>
Mam jako-tako działającą wersję na ADC, ponieważ jest to jako/tako to
mam do Ciebie parę pytań bo zrobiłeś i Ci działa.
Marek Wodzinski pisze:
> On Sat, 26 Dec 2015, AlexY wrote:
[..]
> QtouchADC to całkiem inna metoda. Masz jeden kondensator wewnątrz procka
> na wejściu ADC, drugim jest elektroda. Ładujesz jeden, rozładowujesz
> drugi, potem je łączysz razem i jak ładunek już przepłynie z jednego do
Jak konkretnie je łączysz? Wyzwolenie pomiaru łączy kondensator
przetwornika na 13.5 cyklu przetwornika przy pierwszym pomiarze od
włączenia ADC lub 1.5 cyklu później, w tej chwili mam pierwszą metodę
przy największym dzielniku preskalera ADC, ale czy ten czas wystarczy?
Oscyloskop mi padł więc nie mogę chwilowo skalibrować zgodnie z
zaleceniami Atmela. Jest jeszcze info, iż jeśli kanał pomiarowy nie
zostanie zmieniony to po konwersji ponownie włącza Cs/h aż do startu
kolejnego pomiaru.
[..]
> zakłóceniami). Jeżeli zrobisz 2 pomiary: raz ładując wewnętrzny C i
> rozładowując elektrodę, drugi raz odwrotnie, to jak odejmiesz pomiary,
> to zakłócenia się odejmą, a rzeczywista zmiana pojemności się doda. Samo
> ADC da o wiele większą rozdzielczość pomiaru niż pomiar czasu w
> 'tradycyjnym' układzie, a to przekłada się na większą czułość przy
> mniejszych zakłóceniach (bo te się odejmują).
Zrobiłem 2 wersje ładowania Cs/h
1. z osobnego wejścia (jak poniżej) podciągniętego wewnętrznie do Vcc,
wynik odejmowania jest wyraźniejszy, tylko jest ryzyko wystąpienia liczb
ujemnych.
2. z wejścia 14 "bandgap reference" jest na nim 1.3V w tym wypadku wynik
dodawania daje lepsze rezultaty a odejmowania jest niemal stały.
[..]
> Atmelowa biblioteka jest binarna, pliki nagłówkowe plus skompilowane
> obj-ty.
> Jest tak duża, że wolałem napisać samemu. Sam odczyt to tylko kilka
> instrukcji. Więcej jest zabawy z uśrednianiem długoterminowym,
> ustawieniem sobie progów wykrycia dotyku itp.
Możesz pokazać fragment odpowiedzialny za pomiar?
U mnie w bascomie idzie tak:
Samples = 16 'how many samples will be used for averaging
Ddrc.5 = 0 : Portc.5 = 0 'C5 sensor input uses ADC
Ddrc.2 = 0 : Portc.2 = 1 'C2 used for charging sample/hold capacitor
'ADC INIT
Config Adc = Single , Prescaler = 128 , Reference = Avcc
Do
For Cycle = 0 To Samples -1
'discharge sensor
Ddrc.5 = 1 : Portc.5 = 0
'discharge ADC capacitor
Start Adc
Volt3 = Getadc(15)
Stop Adc
'charge sensor, assume during ADC conversion it was discharged
Portc.5 = 1
'switch to tristate and measure to share the charge with ADC capacitor
Ddrc.5 = 0 : Portc.5 = 0
Start Adc
Volt1 = Getadc(5) + Volt1
Stop Adc
'discharge sensor and charge ADC capacitor
Ddrc.5 = 1
Start Adc
Volt3 = Getadc(2)
Stop Adc
'again switch to tristate to share the charge and measure
Ddrc.5 = 0
Start Adc
Volt2 = Getadc(5) + Volt2
Stop Adc
Next Cycle
Volt1 = Volt1 / Samples
Volt2 = Volt2 / Samples
Ressum = Volt1 + Volt2
Resdif = Volt1 - Volt2
[..]
--
AlexY
http://faq.enter.net.pl/simple-polish.html
http://www.pg.gda.pl/~agatek/netq.html
-
46. Data: 2016-01-27 20:05:39
Temat: Re: Atmega i problem z czujnikiem pojemnościowym
Od: AlexY <a...@i...pl>
Udało się, pełen sukces, wykrycie nogi mam już na ~8cm.
--
AlexY
http://faq.enter.net.pl/simple-polish.html
http://www.pg.gda.pl/~agatek/netq.html