Float trong arduino nhận bao nhiêu số thập phân năm 2024

Trong bài viết này Điện Tử Tương Lai sẽ chia sẻ về hàm string trong Arduino là gì, cú pháp, các thông số và đưa ra các code ví dụ.

Mô tả string()

Xây dựng một bản sao của lớp String. Có nhiều phiên bản tạo string từ các kiểu dữ liệu khác nhau (tức là định dạng chúng dưới dạng chuỗi ký tự), bao gồm:

một chuỗi ký tự không đổi, trong dấu ngoặc kép (tức là mảng ký tự)

một ký tự hằng số duy nhất, trong dấu ngoặc kép

một bản sao của đối tượng String

một số nguyên không đổi hoặc số nguyên dài

một số nguyên không đổi hoặc số nguyên dài, sử dụng một cơ số được chỉ định

một số nguyên hoặc biến số nguyên dài

một số nguyên hoặc biến số nguyên dài, sử dụng một cơ số được chỉ định

float hoặc double, sử dụng các vị trí thập phân được chỉ định

Việc tạo chuỗi từ một số dẫn đến một chuỗi có chứa biểu diễn ASCII của số đó. Mặc định là cơ số mười, vì vậy

String thisString = String (13);

cung cấp cho bạn String "13". Tuy nhiên, bạn có thể sử dụng các cơ số khác. Ví dụ,

String thisString = String (13, HEX);

cung cấp cho bạn String "d", là biểu diễn thập lục phân của giá trị thập phân 13. Hoặc nếu bạn thích nhị phân,

Float trong arduino nhận bao nhiêu số thập phân năm 2024

String thisString = String (13, BIN);

cung cấp cho bạn String "1101", là biểu diễn nhị phân của 13.

Cú pháp

String(biến)

String(biến, cơ số)

String(biến, thập phân)

Thông số

Biến: một biến để định dạng là một string. Các kiểu dữ liệu được phép: string, char, byte, int, long, unsigned int, unsigned long, float, double.

Cơ số: (tùy chọn) cơ số để định dạng một giá trị nguyên.

Thập phân: chỉ khi biến là float hoặc double. Các vị trí thập phân mong muốn.

Return

Một bản sao của lớp String.

Code mẫu

Tất cả những code sau đây là khai báo hợp lệ cho string.

String stringOne = "Hello String"; // sử dụng một string không đổi

String stringOne = String('a'); // chuyển 1 char không đổi sang 1 string

String stringTwo = String("This is a string"); // chuyển đổi một string không đổi thành một đối tượng string

em có đoạn code hiển thị số kg lên lcd sau:

include <16F877a.h>

device PIC16F877a*=16ADC=10

include

include

fuses XT,NOWDT,NOPROTECT,NOLVP,PUT

use delay(clock=4000000)

int chuc,dv,thapphan,i; int a[10]={48,49,50,51,52,53,54,55,56,57}; // so tu 0-9 int16 tam=0; unsigned int16 ht=0; void AD_init(); void doc(); void main() { lcd_init(); AD_init(); delay_us(20);

while(1) { lcd_gotoxy(1,1); lcd_putc("D.AN CAN DIEN TU"); doc(); for(i=0;i<=35;i++) { ht=ht+tam; } ht=ht/36; chuc=ht/100; dv=ht/10; thapphan=ht%10; lcd_gotoxy(1,2); lcd_putc("K.luong: ");lcd_putc(a[chuc]);lcd_putc(a[dv]);lcd_putc(".");lcd_putc(a[thapphan]); lcd_putc(" kg"); delay_ms(150); } } void doc() { for(i=0;i<=35;i++) { tam=read_adc(); delay_ms(15); } } void AD_init() { setup_adc(ADC_CLOCK_INTERNAL); setup_adc_ports(SAN0); set_adc_channel(0); delay_us(800); }

cho em hỏi nó không hiển thị dc số kg lẻ. code em bắt buộc hiển thị 3 số vd : 12.4kg, 01.0kg, 00.1kg,....mong mọi người chỉ giúp ạ. sắp nộp đồ án nhưng chưa hiển thị dc. email: [email protected] e cảm ơn nhiều.

Giải thích code: Để nhận giá trị float trong arduino trong hàm serial có hỗ trợ chúng ta option Serial.parseFloat(). Sẽ convert cho chúng ta ra dữ liệu float luôn rất là tiện lợi.

Code cũng khá là đơn giản thôi các bạn nhỉ. Tùy trường hợp để chúng ta có thể áp dụng các kiểu truyền nhận dữ liệu như vậy. Trên đây là bài chia sẽ của mình. Cám ơn các bạn đã theo dõi nhé.

Trên thị trường hiện nay, có rất nhiều các loại còi (Buzzer) khác nhau các bạn có thể lựa cho cho mình một linh kiện phù hợp để triển khai dự án.

Float trong arduino nhận bao nhiêu số thập phân năm 2024
Còi 5V

Sơ đồ đấu nối

Float trong arduino nhận bao nhiêu số thập phân năm 2024

Các linh kiện cần thiết cho dự án

  • Arduino Uno
  • Module còi 5V

Code mẫu

/ Alarm / float sinVal; int toneVal; void setup(){

 pinMode(12, OUTPUT);
} void loop(){
 for(int x=0; x<180; x++){
        // convert degrees to radians then obtain value
        sinVal = (sin(x*(3.1412/180)));
        // generate a frequency from the sin value
        toneVal = 2000+(int(sinVal*1000));
        tone(8, toneVal);
        delay(2); 
 }   
}

Giải thích code

Bước đầu tiên chúng ta đi vào khai báo các biến cho chương trình.

float sinVal; int toneVal;

Như chúng ta đã biết đơn vị của sin() là radian nên các bạn áp dụng công thức 3.1412/180 để chuyển đổi giá trị góc thành radian.

  • Đọc bài viết: Hàm Sin() trên Cộng đồng Arduino Việt Nam

sinVal = (sin(x*(3.1412/180)));

Tiếp theo, chúng ta thay đổi giá trị sinVal thành tần số âm thanh của còi toneVal.

toneVal = 2000+(int(sinVal*1000));

“sinVal” là kiểu số thực (float) vì vậy để đảm bảo tần số không có số thập phân nên chúng ta cần chuyển về kiểu số nguyên (int).

  • Xem ngay: Kiểu số thực (float) Cộng đồng Arduino Việt Nam
  • Xem ngay: Kiểu số nguyên (int) Cộng đồng Arduino Việt Nam

int(sinVal*1000);

Theo nghiên cứu tai người có thể nghe được ở tần số âm thanh từ 20Hz đến 20kHZ. Vì vậy việc nhân cho 1000 và cộng 2000 để đảm bảo nằm trong phạm vi 2000 đến 3000.