Projekt arduino z czujnikami optycznyni
-
Autor tematu - Czytelnik forum poziom 2 (min. 20)
- Posty w temacie: 2
- Posty: 22
- Rejestracja: 08 gru 2019, 22:01
Projekt arduino z czujnikami optycznyni
Witam. Mam do wykonania projekt na arduino, ale obowiązkowo musze wykorzystać czujniki optyczne-jakie bez znaczenia. Macie jakieś sugestie co lub jak wykonac?
-
- Lider FORUM (min. 2000)
- Posty w temacie: 1
- Posty: 2224
- Rejestracja: 17 wrz 2018, 10:47
- Lokalizacja: Wrocław
- Kontakt:
Re: Projekt arduino z czujnikami optycznyni
Masz spory wybór gotowych czujników jako moduły podpinane kabelkami do płytki prototypowej. Zajrzyj na stronę Bootland lub Gotronik.
Można je też kupić z Chin lub samemu zrobić z elementów dyskretnych.
Co ma robić taki czujnik, bo pojęcie jest szerokie.
Jeśli to zadanie do szkoły, to spróbuj zrobić np. tachometr.
Można je też kupić z Chin lub samemu zrobić z elementów dyskretnych.
Co ma robić taki czujnik, bo pojęcie jest szerokie.
Jeśli to zadanie do szkoły, to spróbuj zrobić np. tachometr.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 1
- Posty: 9319
- Rejestracja: 26 lut 2011, 23:24
- Lokalizacja: mazowieckie
Re: Projekt arduino z czujnikami optycznyni
Ja kiedyś z czystych nudów zrobiłem wyjątkowo bajerancki projekt.
Potrzebny jest czujnik https://www.aliexpress.com/item/32730415199.html, moduł BT https://www.aliexpress.com/item/33009632983.html i ATtiny13 (można użyć Arduino, np. Nano).
Bajer polega na tym, że wynik zliczania odczytuje się smartfonem z Androidem, teraz dokładnie nie pamiętam, ale aplikacja to jakiś "serial monitor" albo coś w tym stylu.
Tutaj masz na szybko znaleziony przykład https://create.arduino.cc/projecthub/va ... ino-18eadc
A program na ATtiny 13 wygląda tak :
Komentarzami się nie przejmuj, przerabiałem coś znalezione w necie.
Skomplikowanie programu wynika z prostoty mikrokontrolera, ma tak mało zasobów, że trzeba wszystko pisać ręcznie. Na Arduino można użyć sprzętowego UART-a i gotowych bibliotek.
Potrzebny jest czujnik https://www.aliexpress.com/item/32730415199.html, moduł BT https://www.aliexpress.com/item/33009632983.html i ATtiny13 (można użyć Arduino, np. Nano).
Bajer polega na tym, że wynik zliczania odczytuje się smartfonem z Androidem, teraz dokładnie nie pamiętam, ale aplikacja to jakiś "serial monitor" albo coś w tym stylu.
Tutaj masz na szybko znaleziony przykład https://create.arduino.cc/projecthub/va ... ino-18eadc
A program na ATtiny 13 wygląda tak :
Kod: Zaznacz cały
#define F_CPU 9600000
#include <avr/io.h>
#include <util/delay.h>
#define SOFT_TX_PIN (1<<PB1) // PB1 as TXD
#define SOFT_TX_PORT PORTB
#define SOFT_TX_DDR DDRB
unsigned int count = 0;
char old = 0;
char now = 0;
int main (void) {
PORTB =1;
uart_tx_init (); // инициализация прог. UARTа
while (1) {
now = (PINB & 1);
if (old != now ){
old = now;
if (old == 1){
count++;
uart_print("Current counter value = "); // превед
num_to_str(count, 5); // 0..99999
uart_print("\r\n"); // переход на новую строчку
}
}
}
return 0;
}
void uart_tx_init ()
{
TCCR0A = 1 << WGM01; // compare mode
TCCR0B = (1 << CS01); // prescaler 8
OCR0A = 125; // 9600 baudrate at prescaler 8
SOFT_TX_PORT |= SOFT_TX_PIN;
SOFT_TX_DDR |= SOFT_TX_PIN;
}
// Функция вывода содержимого переменной
void num_to_str(unsigned int value, unsigned char nDigit)
{
switch (nDigit)
{
case 5:
uart_send_byte((value / 10000) + '0');
case 4:
uart_send_byte(((value / 1000) % 10) + '0');
case 3:
uart_send_byte(((value / 100) % 10) + '0');
case 2:
uart_send_byte(((value / 10) % 10) + '0');
case 1:
uart_send_byte((value % 10) + '0');
}
}
void uart_print(char *str)
{
byte i = 0;
while (str[i]) {
uart_send_byte(str[i++]);
}
}
//bitbanged UART transmit byte
void uart_send_byte (unsigned char data)
{
unsigned char i;
TCCR0B = 0;
TCNT0 = 0;
TIFR0 |= 1 << OCF0A;
TCCR0B |= (1 << CS01);
TIFR0 |= 1 << OCF0A;
SOFT_TX_PORT &= ~SOFT_TX_PIN;
while (!(TIFR0 & (1 << OCF0A)));
TIFR0 |= 1 << OCF0A;
for (i = 0; i < 8; i++)
{
if (data & 1)
SOFT_TX_PORT |= SOFT_TX_PIN;
else
SOFT_TX_PORT &= ~SOFT_TX_PIN;
data >>= 1;
while (!(TIFR0 & (1 << OCF0A)));
TIFR0 |= 1 << OCF0A;
}
SOFT_TX_PORT |= SOFT_TX_PIN;
while (!(TIFR0 & (1 << OCF0A)));
TIFR0 |= 1 << OCF0A;
}
Skomplikowanie programu wynika z prostoty mikrokontrolera, ma tak mało zasobów, że trzeba wszystko pisać ręcznie. Na Arduino można użyć sprzętowego UART-a i gotowych bibliotek.
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 1
- Posty: 1316
- Rejestracja: 08 maja 2007, 08:05
- Lokalizacja: Chodzież
Re: Projekt arduino z czujnikami optycznyni
Prosty jest obrotomierz.
Może licznik towaru na taśmie.
Dojdzie wyświetlacz.
Chyba ,że trzy diody na przykład. . "Za wolno"- "dobrze"- "za szybko".
Coś tam kodu też będzie.
Bo już krańcówka optyczna albo czujnik długości narzędzia, to jak na projekt do szkoły chyba za mało kodowania.
Może licznik towaru na taśmie.
Dojdzie wyświetlacz.
Chyba ,że trzy diody na przykład. . "Za wolno"- "dobrze"- "za szybko".
Coś tam kodu też będzie.
Bo już krańcówka optyczna albo czujnik długości narzędzia, to jak na projekt do szkoły chyba za mało kodowania.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 1
- Posty: 6354
- Rejestracja: 29 kwie 2009, 10:11
- Lokalizacja: Kraków / Jaworzno / Kopanka
Re: Projekt arduino z czujnikami optycznyni
O właśnie - napisz dobre biblioteki do obsługi enkoderów na silnikach modelarskich BLDC 
Zostaniesz doceniony

Zostaniesz doceniony

„Największym wrogiem wolności jest najedzony niewolnik.”
-
Autor tematu - Czytelnik forum poziom 2 (min. 20)
- Posty w temacie: 2
- Posty: 22
- Rejestracja: 08 gru 2019, 22:01
Re: Projekt arduino z czujnikami optycznyni
Wymyśliłem sobie coś takiego. Czujnik optyczny +moduł sim z ktorym mam problem. Posiadam sim800l i sim800l v2, z żadnym nie mogę sobie poradzić. daje osobne zasilanie i zadnych efektow