Moja funkcja lcd_str to to samo co u Ciebie LCD_WriteText. Wstawiłem ją tylko po to by można było się zorientować co ona robi a nie byś ją stosował.
Nie szukałem jeszcze jak się konwertuje float do string'a, ale jak nic nie znajdziesz możesz skorzystać z pomysłu flapo213... Z tym, że w programie możesz sobie w każdej chwili rzutować dane na int. Jest to jednak bardzo obliczeniożerne, dlatego pewnie pracownicy microchipa nie poszerzyli printf o float'y. Więc możesz zrobić tak: float liczba=12.4;...
#include <stdio.h> . . . unsigned char bufor [10]; unsigned char dana sprintf (bufor, "%d", dana); WriteLCD(bufor); Poczytaj o formatowaniu stringow funkcja sprintf (printf) a wszystkiego sie dowiesz: jak wyswietlac w postaci hex, jak wyswietlac float, stringi etc. pozdrawiam BF
Chyba za bardzo nie rozumiesz co się tu pisze. Spróbuj: char bufor[10]; void inline na_tekst(float liczba){ dtostrf(liczba,4,1,bufor); } main(){ na_tekst(temp); LCD_WriteText(bufor); }
Dzięki za tak ekspresową odpowiedź. Jeszcze takie jedno pytanie: Czy jest taka funkcja, która zaokrągla do 0,01? Nie. A to problem napisać taką? Od razu podpowiem o float raczej zapomnij.
Google->avr printf float.
Plik main.c: #define F_CPU 8000000UL #include <avr/io.h> #include <util/delay.h> #include "StringsConv.h" #include "hd44780.h" float val; char tab_out[20]; uint16_t pomiar(uint8_t kanal) { ADMUX = (ADMUX & ~0x07) | (kanal & 0x07); // ustaw kanal ADCSRA |= _BV(ADSC);...
Szanowni. Ostatnimi czasy wpadło mi w ręce rozszerzenie do płytek arduino z wyświetlaczem LCD 2x16. Zapewnia ono możliwość komunikacji w trybie 4-bit z pinem R/W podłączonym na stałe do masy. Postanowiłem go uruchomić na płytce Nucleo z procesorem STM32F103RB. Wyprowadzenia wyświetlacza połączone są następująco: Wyświetlacz uC RS PA9 E PC7 DB4 PB5 DB5...
Witam. Mam problem z kodem. Wszystko się kompiluje ale zawartość funkcji void wyswietlwynik(float dana) nie uruchamia się. Jeśli zawartość tej funkcji jest w pętli while(1) wszystko jest ok [syntax=c] #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include "HD44780.h" #include "HD44780.c" float adc; void inicjalizacjatimerow()...
Witam. Odczyt z jednego kanału ADC nie stanowi problemu, postanowiłem zrobić odczyt z dwóch kanałów i pojawiają się błędy, gdyż to co odczytuje na drugim przedostaje się na odczyt z pierwszego kanału. Co napisałem nie tak i jak to poprawić? W 1 odczycie odczytuje temperaturę z czujnika LM35 a w drugim kanale jest zwykły potencjometr tylko. uC to Atmega32...
Ok. Już podaje: #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <stdlib.h > //makra DS18B20 #define WE 2 #define PORT_1Wire PINC #define SET_1Wire DDRC&=~_BV(WE) #define CLEAR_1Wire DDRC|=_BV(WE) //--------------------------------------...
Kod działa dla zainteresowanych Link do schematu płytek: http://www.elektroda.pl/rtvforum/topic15... Kod (wartość wyświetlana w kPa) #define F_CPU 1000000 /* pod którym portem jest szyna danych */ #define HD44780_DATA_GPIO C /* jak ˛ a cz˛e´s´c portu zajmuje szyna danych: * true: DB4 = bit 4, DB5 = bit 5, DB6 = bit 6, DB7 = bit 7 * false:...
Nie tworz wlasnych opoznen, tylko skorzystaj z delay.h. W SIGNAL(SIG_ADC) masz blad - zastanow sie co sie dzieje po przelaczeniu multipleksera ADC. Poza tym te liczenie do 50 to jaki ma sens? Jesli chciales usrednic 50 pomiarow to nie wyszlo. Zmienna counter jest niezainicjowana. Konstrukcja typu: result=(float)(ADCL | (ADCH<<8))/1024*VREF; wcale...
wyświetlenie temperatury w *F ( czyli *C + 273 ) To raczej temperatura w Kelvinach :) Dalej biblioteka jakaś dziwna... Skorzystaj z biblioteki http://radzio.dxp.pl/hd44780/hd44780_avr... Twój kod powinien w teorii działać, za to przedmówcy zdecydowanie nie... Problemem może być stosowanie zmiennych float i dtostrf. Zamiast tego pomyśl...
Tak z itoa też próbowałem, ale itoa działa mi tylko dla typu int, dla typu long int, long long int, też nic nie wyświetla. Wyświetla natomiast dla typu unsigned int, ale zakres jest jak dla zwykłego int. :| Tutaj drugi przykład: [syntax=c]#define F_CPU 1000000l #include <avr/io.h> #include <util/delay.h> #include "HD44780.h" #include <stdio.h>...
Wszystkie Timery będą wykorzystane do innych celów dlatego nice chcę wykorzysta któregokolwiek timera do przetwarzania ADC [syntax=c] #define F_CPU16000000UL//16MHz zegar procesora #include <avr/io.h> #include <util/delay.h> #include <string.h> #include <stdlib.h> #include <avr\interrupt.h> /***************************************...
Witam serdecznie - jestem początkujący i próbuję uruchomić termometr na atmedze8 Atmega ma podłączony wyświetlacz alfanumeryczny 2x16 znaków DS podłączony normalnie - nie pasożytniczo pisząc program opierałem się na: http://ds5.agh.edu.pl/~czaro/naukowo/avr... oraz chwilkę później ponieważ pierwsze rozwiązanie nie działało: http://www.elportal.pl/forum/viewtopic.p...
Napisałem taki program, na celu ma on wyświetlenie na LCD liczby w formacie XX.XX Wykorzystując funkcję "sprintf": [syntax=c] #include <avr/io.h> #include <util/delay.h> #include <stdio.h> #include "HD44780.h" #include "keyb.h" char buf[32]; volatile float a=22.12; int main(void) { DDRD= 0b00111100; PORTD=0b11101100; LCD_Initalize();...
Aha, rozumiem, rozwiązania ciekawe więc wypróbuję oba w takim razie, natomiast w drugim przypadku nie mam kontroli nad liczbą miejsc po przecinku w zmiennych liczbowych, tak? // Już wiem, zapomniałem jak działa printf w C :P Ale co ten snprintf przyjmuje jako 'format'? :P Aha, i mam problem z wyświetleniem zmiennej float :P Czy to nie było coś typu:...
[syntax=c]/*#include <stdio.h> #include <stdlib.h> #include <avr/io.h> #include "HD44780.h" void init_adc(void); int main(void) { init_adc(); LCD_Initialize(); char temp[10]; while (1) { float i = ADC; //float v = (x*4.67)/255; float vt = (i * 4.67)/1024; float temperatura = vt * 298.15 - 273.15; dtostrf(temperatura, 10, 2, temp);...
Może któryś z szanownych forumowiczów miałby kawałek kodu i schemat spełniający nadający się do tego projektu. Najbardziej zależy mi na kodzie. Kilka miesięcy temu (dla treningu) testowałem układ LM335 - nie wiem czy to ten sam czujnik, czy ma inny zakres temperatur. Te układy wymagają kalibracji (mój oszukiwał coś koło 1 stopnia). Tutaj masz kod,...
Witam! Mam spory problem z ADC, który nie pozwala mi zasnąć: Konfiguracja sprzętowa: - Wybrane wewnętrzne źródło napięcia 2.56V - Kondensator na AREF-GND (zgodnie z instrukcją) - AVCC wolne (niepodpięte) - Źródło napięcia na PC0 (ADC0) - Wyjście na wyświetlacz LCD Konfiguracja software: - Pomiar na przerwaniu - Uśrednienie z 10 wyników dla lepszej stabilności...
W tej chwili mam takie coś: [syntax=c] #include <avr/io.h> #include <stdlib.h> #include <util/delay.h> #include <math.h> #include <stdio.h> #include "HD44780.h" //definicja ADCIN (wejście ADC) #define ADCIN PF0 int main(void) { float pomiar; char str[8]; DDRF = (1<<ADCIN); //Ustawienie Wejścia ADC LCD_Initalize();...
Witam 1. Od jakiegoś czasu szukam jak uruchomić na Atmega16 sprzętowy PWM. Szukałem na forum, jednak bez skutku. Jeśli posiada ktoś jakiś fragment kodu lub link, proszę o podesłanie. 2. W internecie znalazłem taki oto kod [syntax=c] #include <avr/io.h> #include <util/delay.h> #include <stdio.h> #include <avr/pgmspace.h> #include...
Podczas kompilacji tego "prostego" kodu wyskakuje mi błąd "main is a normally non-static function". Sprawdziłem klamerki, są dobrze zrobione. Jak zapisać obliczanie ADC za pomocą arytmetyki stałopozycyjnej, aby nie trzeba było korzystać z tej funkcji dtostrf? [syntax=c] #include <stdlib.h> #include <avr/io.h> #include <util/delay.h>...
Więc, czy to jest poprawnie zdefiniowane? [syntax=c]//****************************... SEGGER Microcontroller GmbH * //* The Embedded Experts * //************************************... układ LCD HD44780 oraz układ klawiatury // # key_1 # key_5 // LCD linia 1 # # # # # # # #...
Nie ma nic w outpucie nt. bibliotek. Są tylko warningi "deprecated convesion from string constant to 'char*' [-Wwrite-strings]" w miejsach gdzie wyświetlam: [syntax=cpp]LCD_WriteText("napis do wyświetlenia");[/syntax] A to są wszystkie inkludy: [syntax=cpp] #include <inttypes.h> #include <avr/io.h> #include <avr/interrupt.h> #include...
Witam, chciałem zrobić cykliczny odczyt wartości napięcia na mikrokontrolerze ATmega32. Kod PRAWIE działa, aby odświeżyć pomiar muszę wgrać panownie program do ATmegi. Gdzie może być problem? [syntax=c]#include<avr/io.h> #include<util/delay.h> #include"HD44780.h" volatile int a=0; volatile float wynikV=0; volatile int calosc=0; volatile...
Program bez przetwornika ADC. Program działa prawidłowo Dodano po 42 Od kiedy praca dyplomowa jest tajna? Pytam z ciekawości- kiedyś była jawna na całym etapie pisania. Dlaczego w pętli głównej blokujesz przerwania- potem wykonujesz sporo obliczeń- a potem odblokowujesz? A co będzie jak w tym czasie pojawią się dwa przerwania? Jedno pójdzie się kochać....
Jak zasilasz z 5V to w formule powinno być 5V, jak 4V to 4, albo użyj wewnętrznego źródła odniesienia. Jak masz wątpliwości to najpierw wyświetlaj na LCD ADC, a obok temperaturę z niej wyliczoną, jak nie wiesz czy działa jakaś funkcja do konwersji liczby to możesz wziąć dowolną liczbę w spodziewanym zakresie, przekonwertować ją i wyświetlić. A w samej...
Mam dobrą i złą wiadomość ;) Dobra to jest taka, że udało mi się przerobić kod z postu #3 do współpracy z bitbay.net. Zła jest taka, że to dość dużo zmian. W kodzie zakomentowałem odwołania do LCD - wyniki wyświetlają się w monitorze portu szeregowego Arduino IDE. Zachowałem oryginalne włoskie komentarze :) Korzystałem z informacji zawartych w tym linku:...
Witam Od paru tygodni próbuję uruchomić termometr na atmega8. Teoretycznie działa ale tylko do 70 stopni C, powyżej wyświetla 0,0. Korzystam z rklibavr. Proszę o pomoc Zamieszczam kod #include <avr/io.h> #include <avr/interrupt.h> #include <avr/eeprom.h> #include <string.h> #include <stdlib.h> #include "delay.h"...
Umieszczam kod ze strony radzia. HD44780.c [syntax=c] //--------------------------------------... // Wyświetlacz alfanumeryczny ze sterownikiem HD44780 // Sterowanie w trybie 4-bitowym bez odczytu flagi zajętości // z dowolnym przypisaniem sygnałów sterujących // Plik : HD44780.c // Mikrokontroler...
Odkopuję temat, ponieważ mój problem również tyczy się przerwania od przycisku, przy użyciu tych nieszczęsnych bibliotek :) Wydaje mi się, że wszystko jest włączone i zainicjowane jak należy... Dokładnie przeszedłem przez UM, oraz posiłkowałem się tematami na 'stackoverflow'. Przerwanie następuje, ale trwałe, tzn wszystko się zatrzymuje migająca dioda...
Witam! Meczę od jakiegoś czasu jedna rzecz i nie mogę przez to przebrnąc może ktoś będzie wiedział. Chce przesłać strumień na wyświetlacz LCD wykorzystując do tego funkcji printf albo jakiejś podobnej bele by miała takie same możliwość. Zrobienie czegoś takiego na atmege to kilka linijek i działa. Dla przykładu poniżej przykładowy kod. I teraz nie umiem...
niedawno stworzyłem sobie programik do przetestowania programu na pc zanim wgram go do avr. i masz tu go zmodyfikowanego (dev c++) #include <cstdlib> #include <iostream> #include <stdio.h> #include <stdlib.h> using namespace std; //------------------------------------- int main(int argc, char *argv[]) { int...
Witam od kilku dni siedzenia i czytania, bez żadnych zmian końcowych. Chodzi mi o to że mam moduł kompasu hmc5883l podłączonego pod atmege32. Chciałbym aby procek podawał mi na wyświetlacz współrzędne obecnego położenia w jakim się znajduje, urodziłem jakiś kod ale wyświetlacz nie wyświetla mi zmiennej float( czytałem o użyciach różnych funkcji itd...
A teraz to: LCD_WriteText(dtostrf(Voltage ... zastąp tym: LCD_WriteText(dtostrf(Voltage ... I zobacz co się robi. Żeby było śmieszniej co jakiś czas wyświetla prawidłowe wartości. Co bardziej denerwuje niż gdyby nie działało całkiem. No a trzeba podzielić żeby wartość wyświetlana...
ECLIPSE problemy z kompilacją programu , brakowało plików typu h ,więc dodałem je do katalogu ale nadal błąd nie wiem już co jest grane w sieci nic na ten temat nie ma , jak napiszę prosty program np. miganie diodą kompilacja przechodzi bez problemu. Może macie jakiś pomysł , Eclipse mam skonfigurowany zgodnie z tutorialem z Atnela. Poniżej kod programu...
To jest przyklad tego jak mozna obsluzyc DS1820 przez mega 8 ale jest tam tez obsluga wyswietlacza w C.Moze sie pryda.Sam to dostalem od jednego kolegi z forum:-) wiec mam nadzieje ze sie nie obrazi...mnie interesowal DS. Pozdrawiam Maciek! #include <avr/io.h> #include <avr/pgmspace.h> #include <stdlib.h> #include <ctype.h> #include...
Witam, Napisałem kod, w którym wykorzystuje porty do programowania [JTAG] jako pomiar na termistorze. Oddzieliłem te 2 sygnały switch'ami by podczas programowania niepotrzebnie mieszać oraz programowo zmiana switch'u dezaktywuje JTAG w uC. Problem polega na tym że dokonując pomiaru na 4 portach mam dziwny wynik. Otóż wyświetlacz pokazuje mi wartość...
mam tak: char data0[8] = {0x0E, 0x11, 0x11, 0x11, 0x0A, 0x0A, 0x1B, 0x00}; //ohm numer 0 char data1[8] = {0x02, 0x05, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00}; //stopien numer 1 char data2[8] = {0x00, 0x04, 0x15, 0x0E, 0x15, 0x04, 0x00, 0x00}; // gwiazdka char znak[8] = {0x0C, 0x04, 0x06,...
/* File: main.cpp Version: 1.0 - first version Date: April 7, 2015 License:GPL v2 Digital Bench Power supply http://www.pocketmagic.net/digital-b... ****************************************... Copyright (C) 2015 Radu Motisan <radu.motisan(at)gmail.com> http://www.pocketmagic.net...
Witam. Zakupiłem ostatnio czujnik temperatury i wilgotności DHT22. Napisałem kod, który przedstawiam poniżej. Na wyświetlaczu LCD wyświetla zamiast wartości znak zapytania. Program kompiluje się bezbłędnie i bez problemu wgrywa na uC atmega8. Załączam również biblioteki do DHT22 jakich użyłem i fotkę LCD. Pytanie oczywiście brzmi co robię? Znak zapytania...
Na początek podam kod:[syntax=C] #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include "hd44780.h" //definicja napięcia referencyjnego #define VREF 5.05 volatile float adc;//zmienna do obliczeń napięcia int main(void) { char wynik[]=" ";//bufor tekstowy, wyczyszczenie bufora //Inicjalizacja ADC ADCSRA = (1<<ADEN);...
Panowie postanowiłem wykonać test wbudowanych w atmel studio typów fixed point vs float. Na razie tylko samych _Accum z saturacją ale to co zobaczyłem nie napawa optymizmem gdzie jest błąd?Dodam że -atmel studio 7, -wewnętrzny zegar 8MHz -Atmega16. -Do pomiaru czasu używam timer 1. Najpierw kod, testujemy 4 działania +,-,*,/ dla typu _Accum i float....
Walk ciąg dalszy, dla łatwiejszego zrozumienia tego makaronu wywaliłem to co uznałem za stosowne, zostawiłem tylko te funkcje które pozwolą mi pomierzyć V na 2 kanałach. Bez przerwań, bez dodatkowych deklaracji wprowadzających zamęt. Ale dalej nie działa tak jak bym tego chciał :/ #include <avr/io.h> #include "hd44780.h" #include <stdlib.h>...
Chyba będę potrzebował znowy pomocy :( Przyszedł wreszcie wyśietlacz (taki : https://botland.com.pl/wyswietlacze-alfa... ). Podłączyłem go do mojego projektu, zainstalowałem odpowiednie biblioteki, ustawiłem kontrast i podświetlenie, dopisałem wyświetlanie...
Witam, Napisałem sobie kod dla woltomierza na ADS1110 i chciałbym go wyświetlić na ekranie jednak brakuje mi może 100bajtów w pamięci - używam Atmega48, kod wynikowy zajmuje 4224 bytes (103.1% Full) Czyli za dużo. Da się coś z tym zrobić? Używam 4 dzielników napięć przełączanych przekaźnikami i stąd te mnożniki w programie. Kod działa jeśli usunę mnożniki...
Na obecną chwilę trochę pozmieniałem kod. Zachowanie czujnika wygląda następująco: -przy normalnym podłączeniu pokazuje -0.1 (to zaokrąglone -0.0625) -po odłączeniu środkowego pinu od atmega8 - pojawia się napis "zwarcie" a temperatura zmienia swoją wartość na 0.0 -nie potrafię doprowadzić do sytuacji by wyświetlić napis "brak cz" main.c ds18b20.h ds18b20.c...
Witam Przerzucam się z Bascom na C. Niestety jest to odrobinę bolesne. O ile LCD już ogarnąłem, to kłopot sprawia mi DS18b20. Zaraz po uruchomieniu układu, temperatura wyświetla się w miarę dokładnie. Niestety po kilkudziesięciu sekundach wyświetlana jest temperatura ujemna (!). Czyli najpierw pokazuje ok 22-23 st. i nagle przeskakuje na -8st. Wygląda...
Witam. Potrzebuje zrobić proste naprawdę proste menu na wyświetlaczu LCD 2x16 hd44780. Na różnych stronach znalazłem przykłady, ale niestety bardzo skomplikowane i rozbudowane. Moje menu ma wyglądać następująco Wyświetl->Wyświetla parametry z czujników Ustaw -> parametr do zmiany -> parametr do zmiany I to jest wszystko. Chciał bym to zrobić...
Witam, robię miernik do pomiaru prądu, napięcia i mocy na Atmega8 w C. Pomiar napięcia i prądu bez problemu, ale mam problem z obliczeniem mocy. Jak pomnożyć dwie wielkości ADC z dwóch wejść ???? [syntax=c]#include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include "HD44780.h" #include "keyb.h" #define VREF 5.0...
Witam Programuje 2x ADC które szczytuje mi wartości z potencjometrów podłączonych przez dzielnik napięcia do portów PC0 PC1, za pomocą przerwania ADCSRA ( ADIE -Kiedy ten bit jest ustawiony wraz z I-bitem w rejestrze SREG wtedy aktywne jest przerwanie od zakończenia konwersji.) Robię tak za pomocą przerwania a nie timera bo nie chce aby mi ciągle czytał...
tylko tyle i już? pytam się bo nie che bez potrzeby odkręcać prędkościomierza [syntax=c] #include <avr/io.h> #include "HD44780.h" #include <util/delay.h> #include "Przerwanie_INT0.h" #include <avr/interrupt.h> #include <math.h> volatile uint8_t flaga=0; volatile uint16_t liczba=0; volatile uint16_t licznik=0; volatile uint16_t...
USB zasilane jest z power banku, przy korzystaniu z tej skrzynki nie polecam dotykać sie do przewodów przy włączonym PTT. Cały kod programu (jak to bywa, taki mały bałagan - nie planowałem się nikomu chwalić): [syntax=c]#define TWI_FREQ 100000L #include <Wire.h> #include <hd44780.h> // main hd44780 header #include <hd44780ioClass/hd44780_I2Cexp.h>....
Witam, Ponizszy program wykorzystuje przetwornik ADC Atmega32 za pomoca potencjometru zmieniam przedziały i program wyświetla mi liczby od 0 do 255 bo jest on 8 bitowy i tutaj wszystko działa ok lecz nie mogę wyświetlić wyniku napięcia czyli zamienic rezultatu wyświetlanego z bitów na napięcie , jest doprowadzone 5V zasialne z USB. Próbuje wykonać to...
...proszę o sprawdzenie i korektę błędów z komentarzem... //--------------------------------------... // >>>>>>>>>>... V O L T O M I E R Z <<<<<<<<<<... //--------------------------------------... //##################...
Witam Mam problem. Potrzebuje skompilować plik CPP ,ale gdy otwieram go za pomocą Visual Studio 2022 , 2013 , lub AVR Studio nie podświetla mi się KOMPILUJ. Druga sprawa: gdzie i jak wgrać biblioteki io.h ,delay.h oraz aux.h ,pwm.h. Poniżej podaje kod i prosiłbym o pomoc, gdyż zaczynam z programowaniem i czytam różne kursy, lecz nic to nie wniosło ....
Witam, chciałem przetestować porty ADC wyświetlając wynik na LCD. Korzystam z kodu przedstawionego tutaj: http://obrazki.elektroda.pl/3988361600_1... [syntax=c]#include <avr/io.h> #include <util/delay.h> #include "HD44780.h" #include "HD44780.c" #include <stdio.h> //definicja napięcia referencyjnego #define VREF 5.0...
Cześć. Koledzy składam wagę z projektu który znalazłem i niestety na arduino uno zabrakło miejsca . Nie jestem programistą i sam nie jestem w stanie kodu zoptymalizować. Jedynie usunąłem wybór języka i zaoszczędziłem 2% pamięci. Jest jeszcze tylko o 1% za dużo więc ośmielam się prosić o pomoc tutaj na forum. Szkic używa 32856 bajtów (101%) pamięci programu....
Mój ma takie oznaczenie i nie działa. Dalej szukam. Jak znajdę błąd to dam znać. Dalej nie mam rozwiązania. Wymieniłem wyświetlacz na inny, który już kiedyś używałem i działał. Może podejść do sprawy inaczej. Jeśli ktoś byłby tak miły i spojrzał w program to może wypatrzył by błąd. Podłączenie wyświetlacza: pin 1 - masa pin 2 - +5V pin 3 - kontrast...
wydaje mi się że powinno być char buf tak, tak, już to poprawiłem, zmieniłem zaś na float temp1 i 2 uzyskując tym samym podziałkę co 0,1 choć ze względu na możliwość pomiaru niskich temperatur ujemnych wolał bym 0,5 stopnia. Obecna postać kodu wygląda tak, i w tej pozycji w pokoju pokazuje mi 2056,6 stopnia :) To już chyba problem ze wzorkiem, który...
Będzie. Po prostu są one inne pliki źródłowe bibliotek dla każdej platformy To się kłóci z tym czemu arduino służy. Oczywiście, to co kolega opisał czyli "cores" jak najbardziej jest blisko sprzętu i korzysta z rejestrów. Ale jeśli ktoś udostępnia bibliotekę np. obsługi HD44780 na I2C (z ekspanderem) to ona nie korzysta z rejestrów I2C atmega328 w...
Witam, Zgodnie z lekturą http://www.jaglarz.com/ja/elektronika/ds... próbuję odczytać temperaturę. Przepisałem wszystko tak jak jest w dokumencie, sprawdziłem kilka razy - wydaje mi się że błędu nie popełniłem. Mimo to odczyt temp. nie działa. Otrzymuję wynik -0.1 Oto kod: /* * ds18s20.h * */ #include <avr/io.h> #include <stdlib.h>...
Witam serdecznie. Nie znalazłem podobnego tematu, a próbując rozwiązać mój problem, próbowałem porad z forum i poza nim. Przejdę od razu do tematu. Próbuję zaprogramować wyświetlacz HD44780 ze ekspanderem PCF8574T. Używam kodu który kiedyś znalazłem gdzieś w internecie. Kiedyś tj na początku maja. Ekspander na I2C podłączony jest do MSP430G2553 na port...
http://obrazki.elektroda.pl/6202667300_1...
Witam jakiś czas temu kupiłem na Allegro wyświetlacz VFD od kasy fiskalnej model Fujitsu VF60. Postanowiłem zrobić na nim termometr jednopunktowy z czujnikiem DS18B20, po rozkręceniu wyświetlacza okazało się że jest to wyświetlacz z interfejsem UART i pojawił się problem. W sieci jest sporo projektów termometrów ale wszystkie opierają się na tradycyjnym...
Cześć, Ponieważ udało mi się poprawnie odczytać temperaturę z termometru cyfrowego DS18B20 na module prototypowym eXtrino XL z AtXmega128a3u na pokładzie - pragnę się podzielić tym minikodem z początkującymi osobami. Myślę, że informacje zawarte w tym przykładzie, pozwolą osobom początkującym (czyli takim co już potrafią migać diodą) na zrozumienie...
Witam, czy ktoś mógłby rzucić okiem na kod? funkcja lcd.print("hello world") działa tylko w void setup() i nie wiem dlaczego. Kiedyś już to robiłem i działało w void loop(), jeśli usune linijkę [syntax=cpp] Ethernet.begin(mac, ip);[/syntax] to działa. [syntax=cpp] #include <SPI.h> #include <String.h> #include <Ethernet.h> #include...
Ok...ten częściowy kod jest nieco zmodyfikowany ale teraz też lista komunikatów o błędnych wywołaniach funcji jest dłuższa niż program... //######################################... //########## A T M E G A _ 3 2 ########## //######################################... #include <stdint.h> #include <avr/io.h> #include <stdlib.h> #include...
Witam, niestety to już mój drugi watek w związku z miernikiem ultradźwiękowym który robię. Najpierw próbowałem z przetwornikiem a/c ale nie dawało to żadnych odczytów i teraz spróbowałem z komparatorem a/c i timerem. Do atmegi podłączyłem nadajnik ultradźwiękowy przeciwsobnie. Włączam timer1 z przerwaniem od przechwytywania. Programowo wysyłam paczkę...
Witam Mam problem z odczytaniem temperatury z 2-uch ds18b20 program napisałem w C w oparciu o znalezione pliki owire.c i owire.h program się kompiluje jednak na wyświetlacz nie trafiają informacje o MSB i LSB (na początku chcę przetestować na jednym ds18b20 bez konwersji na temperaturę) jedyną modyfikacją jaką wprowadziłem było zdefiniowanie typu u08...
Zrobiłem tak jak kazałeś, kolego BlueDraco, no może oprócz odczytu temperatury do osobnej funkcji, ale nadal fiasko - nic się nie wyświetla. Wiem, że main powinien zawierać tylko inne funkcje, ale zawsze robię te poprawki, gdy cały algorytm działa poprawnie. Obecnie funkcja main wygląda następująco: [syntax=c] /* Plik main.c TERMOMETR */ #include <avr/io.h>...
Witam, w ramach nauki programowania uC, znalazłem kod pozwalający na wyświetlanie temperatury z DS18B20, na wyświetlaczu 1602A. Jako że na samym przeklejeniu kodu pewnie zbyt wiele bym się nie nauczył, użyłem nieco innego termometru(dokładność nie 0,1, a 0,5*C), zmieniłem układ w jakim ma się wszystko wyświetlać, zastąpiłem float przez int zmieniane...
Witam Po wielu próbach dalej nic nie działa Znalazłem nową wersje artykułu z którego korzystałem (w załączniku) 1-wire.h [syntax=c] /* * _1_Wire.h * * Created: 2011-10-23 02:08:12 * Author: Darek */ //#ifndef 1-WIRE_H_ //#define 1-WIRE_H_ //#endif /* 1-WIRE_H_ */ #include <avr/io.h> #define PIN_1WIRE 0 #define PORT_1WIRE PIND #defineOUT_1WIRE_LOWPORT_1WIRE&=~(1&...
Witam Pisząc program pod mikrokontroler Atmega8 napotkałem problem. Ogólnie program ma pokazywać tylko temperaturę odczytaną z czujnika DS18B20 Obsługa LCD działa, układ programuję się prawidłowo, ale na wyświetlaczu dostaje tylko komunikat, że czujnik jest niedostępny. Czujnik temperatury podłączony jest pod port PD0. I zasilany jest z tego samego...
Cześć, mam problem z implementacją filtru IIR 4 rzędu Butterwortha na ATmedze32. Z części analogowej układu (tj. wzmacniacz sygnału pochodzącego z mikrofonu) podaje sygnał na ADC (PA0). Sygnał jest podbity o składową stałą 2.5V, dzięki czemu zakres wartości zawiera mi się w przedziale (0,5V). Sprawdzałem zawartość rejestru ADCH, wartości zgadzają się...
Witam Mam problem z pomiarem napięcia za pomocą przetwornika ADC w Atmega8. Gdy na wejście podam np. napięcie 2,46V zmierzone woltomierzem to wynik z przetwornika na wyświetlaczu zmienia się od 2,33-2,36V. Dlatego mam pytanie czy da się zmierzyć rzeczywiste napięcie jakie podaję na wejście bez dodatkowych korekt ? Oraz z czego wynika że pomiar skacze...
Napisałem taki oto program do pomiaru napięć: Kiedy uC działa z wewnętrzną częstotliwością 1MHz i ma wyłączony JTAG, czyli ustawienia E1 i D9 wszystko jest ok (ADC4 i ADC5 mierzą napięcia). Kiedy jednak zmieniłem ustawienia na wewnętrzną częstotliwość 8MHz lub 4MHz i też wyłączony JTAG, czyli E4 i D9, to wyświetlacz pokazuje mi podobne napięcie w obu...
Witam Mam taki problem, że nie działa. I nie mam pojęcia co w nim może być nie tak... ale czy cokolwiek jest dobrze... Programowania avr uczę się od 2 dni, więc proszę o wyrozumiałość. Na wyświetlaczy LCD cały czas pokazuje mi -0,01. czasami pokazywało większe liczby... ale termometr nie reagował na zmianę temperatury. [syntax=c] #include <avr/io.h>...
Zapewne coś namieszałem bo nadal mam błędny odczyt [syntax=cpp] #include <stdint.h> #include <avr/io.h> #include <stdlib.h> #include <avr/interrupt.h> #include "HD44780.h" #include "i2c_twi.h" //********** funkcje przetwornika ADC char buffer_n[8]; volatile uint16_t pomiar[6] __attribute__((section(".noinit"))); void inline SetAdcKanal(unsigned...
Przeczytałem, przebudowałem (jak i również zrobiłem porządek), pogrzebałem trochę w kodzie i gdy zamiast DS1820 wsadzę potencjometr to ładnie mi się wszystko wyświetla, z DS1820 mam 0 a gdy dotknę go palcem to dochodzi do 2(taki sam objaw jest gdy mam podciągnięty do + rezystorem czy nie.). dodaje schemat i kod: http://obrazki.elektroda.pl/2539060200_1...
EDIT. http://www.youtube.com/watch?v=OcLVG1uZb... Po wielu godz. rozwiązałem wszystkie problemy. Poniżej umieszczam program napisany pod ATmege 328P(inaczej niż w temacie), gdyby ktoś budował coś podobnego i temat zamykam. [syntax=cpp] #define F_CPU 16000000uL #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include...
Czyli wyczyszczenie magistrali następuje w pierwszej linijce tej funkcji, tak? Mam cały program i coś jest nie tak. Temperaturę z MCP9700 odczytuje prawidłowo, a z dallasa mam ciągle "cisza". Poza tym wszystko działa bardzo wolno i jak wyjmę kondensator filtrujący spomiędzy pinów MCP9700 to nie reaguje na zmianę napięcia. Procesor to ATmega8 i jest...
Witam! Ostatnio próbuje zbudować sterownik do akwarium. Zaczynam od pomiaru temperatury za pomocą DS18B20. Korzystam z zestawu EvB 4.3, ATmega32. Po wgraniu programu na wyświetlaczu LCD nic się nie pojawia i nie mam pomysłu co robić. Na początku pojawił się error, że nie odnajduje pliku config.h więc przeniosłem go z podobnego projektu sterownika. Po...
Witam, mam prośbę, czy mógłby ktoś sprawdzić mojego Makefil'a, ponieważ podczas kompilacji wrzuca mi błąd o kodzie: avr-objcopy: 'main.elf': No such file make: *** [syntax=c]//sterownik wyswietlacza #include "HD44780.h" //usawiasz tam porty sterujące, nie musisz ogarniać kodu #include <util/delay.h> #include <avr/io.h>...
Witam, Mam jedno pytanie. Pomiar temperatury przy użyciu układu DS18b20 trwa 750ms przy rozdzielczości 12 bitów. Używam ATmega32, a sam pomiar działa poprawnie. Jak można rozwiązać problem polegający na tym, że program podczas wykonywania pomiaru nie "czyta" klawiszy? Z góry dziękuję za odpowiedź. Poniżej zamieszczam kod samego pomiaru: [syntax=c]#include...
Witam! Dziś zająłem się uruchomieniem ds18b20 razem z zestawem uruchomieniowym ZL2AVR z Atmega8. Jako przykład użyłem opracowania Cezarego Klimasza "obsługa ds18b29". Eclipse nie pokazuje żadnego ostrzeżenia. Problem jest w tym że nic się nie wyświetla. Zauważyłem że podczas resetowanie procesora tekst wyświetla się na ułamek sekundy. Termometr podłączyłem...
Witam! Napisałem program w C do mierzenia napięcia przez ADC w ATmega8, odczytuję z przetwornika wartość bitową od 0 do 1023. I dotąd jest wszystko ok, ale chcę sterować diodą na innym pinie(np PB1) w ten sposób, że gdy wartość odczytana będzie mniejsza od 500 to dioda ma nie świecić, a gdy przekroczy 500 ma świecić. Problem w tym, że gdy włączę układ...
Witam, chciałem zaoszczędzić kilka pinów PIC16F1459 i zamiast bezpośrednio podpinać LCD HD44780 pod ten uC, chciałem użyć sprzętowej komunikacji I2C tego uC ( piny RB4 i RB6 - PCF8574T widocznej poniżej, a kupionej u chińczyków. Sprawdziłem jak poprowadzone są piny w tej przejściówce z chin i są następujące: LCD_EN = P2 (pin P2 PCF8574T) LCD_RW = P1...
Witam Jestem początkujący w technice mikroprocesorków i w programowaniu w c. Aktualnie męczę się z wpisaniem czasu do PCF. Przy próbie zapisu w momencie kiedy sekundy równe są 5 wyświetlanie czasu zamiera. Reszta układu działa, ale czas na wyświetlaczu pozostaje w formacie 00:00:05 Wzorowałem się na : http://www.elektroda.pl/rtvforum/topic13...
Witam ponownie. Prośba jak w poprzednio. Zupełnej zmianie uległ sposób sterowania grzałkami. Obecnie problem polega na tym, że na wyjściu grzałek, bez względu na temp., nic się nie dzieje. Załączam zmodyfikowany kod: include <stdio.h> #include <avr/io.h> #include <util/delay.h> #include "hd44780.h" #include "ds18b20.h"...
Witam, dopiero zaczynam przygodę z mikrokontrolerami i za pierwszy "projekt" wziąłem sobie za zadanie napisanie prostego termometra. Pracuję na atmedze 328p-pu, w Atmel Studio 7.0. Kod na działanie czujnika znalazłem w internecie jednak cały czas na wyświetlaczu pojawia mi się znak zapytania. Gdy na wyświetlaczu chcę wyświetlić same chary to działa...
Na filmie jak spadła pierwsza kropla nie nastąpiło jej zliczenie. Odp. To czy czujnik zareaguje na spadającą kroplę zależy od siły uderzenia i od ustawienia rezystancji w pętli zwrotnej wzmacniacza. Pierwsze można regulować wysokością (strzykawki, czy lejka z którego będą spadać krople), a drugie można ustawić za pomocą potencjometru. W wypadku wysokości...
Odświeżam trochę... Po tym jak mnie tu pojechano, postanowiłem pominąć eeprom i wysłać temperaturę na LCD. Po części się to udało ale układ wskazuje ciągle -0.1 st.C. Czujnik na pewno jest sprawny, bo wymieniałem i dalej to samo. Połączenie i odwołanie do portu też jest ok, bo jak odłączam czujnik, to wyświetla mi info o błędnym odczycie. Między nóżkę...
Podobny problem zgłaszam..:( Korzystam z następującego gotowca : #include <avr/io.h> #include <stdlib.h> #include <util/delay.h> #include <stdio.h> #include "serial.h" //#include "HD44780.h" #ifndef F_CPU #define F_CPU 8000000 #endif #define WE 4 #define PORT_1wire PIND #define SET_1wire DDRD&=~_BV(WE)...
Witam, próbuję odczytać temperaturę z mojego czujnika jednak wynosi ona ciągle -0.1, a gdy próbuje pobrać odczytać ID wyświetla mi puste miejsca lub krzaczki. Przy próbie podłączania za pierwszym razem niestety źle spojrzałem na schemat i odwrotnie podłączyłem zasilanie więc teraz nie wiem czy to wina kodu czy może jednak układu. Chociaż jakby coś z...
Właściwie to zgadzam się z większością argumentów jakie przedstawił Kolega LChucki, pomimo, że jestem po drugiej stronie barykady, pisząc oprogramowanie wyłącznie dla siebie dla tzw. przyjemności. Po co się "męczyć" z buforem kołowym na 328P skoro można sobie założyć bufor 1,2 czy 8 kB na transmisję UART. Po co tracić czas na obsługę przerwania skoro...
Witam Ten temat pewnie tysięczny raz jest poruszany, ale nie udało mi się jak dotąd znaleźć wyjścia z sytuacji. Sprawa wygląda tak: mam podpięty czujnik Ds1820 do portu D pin 4. Standardowe podłączenie: VCC - VCC DATA - PIND.4 GND - GND z pinu PIND.4 portu opornik i na VCC. Kolega użyczył mi kawałek kodu w Bascomie do obsługi 1-wire, i sprawdziłem i...
zaokrąglać float float konwersja przecinek float
klimatyzacja zasilanie radio hitachi prądu gniazdku zapalniczki
Brama dwuskrzydłowa zamyka się, ale nie otwiera Demontaż stref zgniotu w Jaguar F-PACE