logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Bascom avr - zmiana poszczególnych znaków zmiennej typu String

MICHAŁ6201 08 Kwi 2021 23:13 525 6
  • #1 19368641
    MICHAŁ6201
    Poziom 16  
    Witam
    W jaki sposób mogę zmienić poszczególne znaki w zmiennej typu String?
    Mam zmienną typu String
    Dim Temp_str As String * 5

    Wiem jak je wyodrębnić:

    Mid(Temp_str , Pos)

    A teraz jak mogę zmienić poszczególne znaki w tej zmiennej typu String?
  • #2 19368752
    Jacek Rutkowski
    Poziom 28  
    W jaki sposób chcesz kolego je zmieniać?
    Małe na duże litery i odwrotnie czy coś ambitniejszego?

    Kod: VB.net
    Zaloguj się, aby zobaczyć kod
  • #3 19368756
    MICHAŁ6201
    Poziom 16  
    Witam
    Buduję sobie zasilacz regulowany na moje potrzeby do zabawy elektroniką.
    Wymyśliłem sobie, że nastawę napięcia wyjściowego zrobię za pomocą enkodera.
    Na wyświetlaczu mam pokazane napięcie początkowe np.: 0,000V
    Czyli w kodzie będzie to zmienna String

    Teraz chcę każdą z tych cyfr z osobna zmienić, tzn ich wartość od 0 do 9.
    Chodzi mi o ustawianie napięcia jakie chce mieć na wyjściu.

    I teraz chciałem wybrać i ustawić najpierw części tysięczne napięcia, następnie setne, dziesiętne i na koniec jedności.

    Później tą zmienną String przekonwertuję i wyśle do przetwornika DAC, który przyjmuje wartość od 0 do 65535.
  • Pomocny post
    #4 19368767
    Jacek Rutkowski
    Poziom 28  
    Jaki będziesz miał wyświetlacz?
    Alfanumeryczny że string będzie ok?
    Czy może LED lub LCD segmentowy?

    Żeby zmieniać wartość enkoderem trzeba go obsłużyć...
    Enkoder ma przycisk?
    Zatem weź zmienną Word w której będziesz zmieniał nastawy np.
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod

    Gdy już pozmieniasz co masz zmienić wysyłasz wartość do DAC, oraz konwertujesz "wartosc" na stringa i wysyłasz do wyświetlacza.
    Osobiście gdy robiłem swój zasilacz to w programie zrobiłem wykrywanie szybkości kręcenia enkoderem i jak kręcę szybciej to przeskakuje po 0,5V na krok a gdy wolniej 0,01V na krok. Wygodniejsze to od przestawiania każdej z cyfr osobno bo działa intuicyjnie jak potencjometr a nie klawiatura...
    https://www.elektroda.pl/rtvforum/topic3309974.html
    Programu nie wstawiałem bo jest dość długi (1920 linii kodu) napisany na piechotę z obsługą dwóch wyświetlacz LCD od noki 3310, DAC, ADC itp.
    Jeśli chcesz podrzucę część odpowiedzialna za obsługę enkoderów ale to jest na piechotę pisane na ATMegę 128 z obsługą przerwań od enkoderów...
  • #5 19368775
    MICHAŁ6201
    Poziom 16  
    Wyświetlacz alfanumeryczny będzie 4 x 20znaków
    Pierwotnie zrobiłem regulację na potencjometrach wieloobrotowych i działa pięknie pomiar napięcia i ograniczenia prądu.

    Zachciało mi się enkoderów, ale chyba tego nie dam rady zrobić programowo bo za cienki jestem. Żaden ze mnie programista.
    Po prostu myślałem że się czegoś nuczę, ale mnie to przerosło.
    Obsługę samego enkodera mam. Zlicza impulsy od 0 do 65536 w górę i w dół.
    Ale nie wiem co jest tu index_wartosc? a co warotsc?

    Z enkodera mam impulsy od 0 do 65536. To co mi da dodawanie do tego 10 albo 100?

    Może to się nie da tak zrobić jak ja chcę?
    Ja to widzę tak:
    Naciskam przycisk w enkoderze, miga jedność - wybieram wartość 0 - 20
    Naciskam ponownie enkoder, miga dziesiętna część volta - wybieram wartość 0-9
    Naciskam ponownie enkoder, miga setna część volta - wybieram wartość 0 - 9
    Naciskam ponownie enkoder, miga tysięczna część volta - wybieram wartość 0 - 9
    Naciskam ponownie enkoder, wysyłam po przeliczeniu na kod 0 - 65536 do DAC.


    Teraz zrobiłem to najprościej jak się da, czyli żeby mieć na wyjściu max napięcie 20V, muszę kręcić enkoderem do 65536. Zajmuje to ogromną ilość czasu i jest to bez sensu rozwiązanie.
REKLAMA