Spisu treści:
- Krok 1: Interfejs SD
- Krok 2: Mapowanie pinów GPIO ESP32
- Krok 3: Wymagania dotyczące podciągania SD
- Krok 4: Różny sprzęt
- Krok 5: Płytka zaciskowa gniazda kart SD
- Krok 6: Odłącz GPIO 2 podczas programu
- Krok 7: Benchmark
- Krok 8: 4-bitowy test porównawczy trybu SD_MMC
- Krok 9: 1-bitowy test trybu SD_MMC
- Krok 10: Tryb SD SPI w HSPI Bus Benchmark
- Krok 11: Tryb SD SPI w VSPI Bus Benchmark
- Krok 12: Zaokrąglaj
Wideo: Wybierz interfejs SD dla ESP32: 12 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
Ta instrukcja pokazuje coś na temat wyboru interfejsu SD dla twojego projektu ESP32.
Krok 1: Interfejs SD
W oryginalnej bibliotece Arduino SD interfejs SD korzysta z trybu transferu magistrali SD SPI.
SD faktycznie ma więcej trybu transferu:
- Tryb magistrali SPI: ESP32 ma więcej niż 1 magistralę SPI, można ją dostosować podczas inicjalizacji;
- Tryb 1-bit / 4-bit szyny SD: ESP32 dedykuje inną bibliotekę o nazwie SD_MMC do implementacji API trybu szyny SD
- Tryb SD UHS-II: ESP32 nie jest obsługiwany
Nr ref.:
www.arduino.cc/en/reference/SD
en.wikipedia.org/wiki/SD_card
docs.espressif.com/projects/esp-idf/en/lat…
Krok 2: Mapowanie pinów GPIO ESP32
Oto domyślne mapowanie pinów GPIO ESP32:
PIN karty SD | Pin microSD | Nazwa | 4-bitowa magistrala SD | 1-bitowa magistrala SD | Magistrala SPI (piny HSPI / VSPInative) |
1 | 2 | D3 | 13 | - | SS (15 / 5) |
2 | 3 | CMD | 15 | 15 | MOSI (13/23) |
3 | - | VSS | GND | GND | GND |
4 | 4 | VDD | 3,3V | 3,3V | 3,3V |
5 | 5 | CLK | 14 | 14 | SCK (14 / 18) |
6 | 6 | VSS | GND | GND | GND |
7 | 7 | D0 | 2 | 2 | MISO (12 / 19) |
8 | 8 | D1 | 4 | - | - |
9 | 1 | D2 | 12 | - | - |
Nie można zmienić mapowania pinów GPIO 1-bitowej / 4-bitowej szyny SD.
Proste wywołanie SD_MMC begin() do początkowego trybu 4-bitowej szyny SD:
SD_MMC.początek();
Tryb 1-bitowej szyny SD można wybrać w metodzie SD_MMC begin(), np.
SD_MMC.begin("/cdcard", prawda);
Magistralę SPI (HSPI lub VSPI) można wybrać podczas tworzenia instancji SPIClass, np.
SPIClass spi = SPIClass(HSPI);
Jak widać 1-bitowe / 4-bitowe piny magistrali SD współdzielą piny z HSPI, ale mapowanie pinów karty SD nie jest takie samo. Więc jeśli sprzęt jest podłączony zgodnie z mapą pinów magistrali SD, nie może bezpośrednio używać natywnych pinów HSPI. Piny GPIO można nadpisać w metodzie begin() SPIClass, np.
SPIClass spi = SPIClass(HSPI);
spi.begin(14 /* SCK */, 2 /* MISO */, 15 /* MOSI */, 13 /* SS */);
A także biblioteka SD może nadpisać pin SS, magistralę SPI i częstotliwość magistrali w metodzie SD begin(), np.
SD.begin(13 /* SS */, spi, 80000000);
Krok 3: Wymagania dotyczące podciągania SD
Jeśli chcesz korzystać z 4-bitowego trybu szyny SD, postępuj zgodnie z wymaganiami ESP32 SD Pull-up, w szczególności:
- Konflikty podciągania na GPIO13
- Konflikty między Bootstrapem a SDIO na DAT2
Nr ref.:
docs.espressif.com/projects/esp-idf/en/lat…
Krok 4: Różny sprzęt
ESP32 ma mnóstwo zestawu deweloperskiego i płyty deweloperskiej, niektóre z nich mają wbudowane gniazdo kart MicroSD.
Oto kilka przykładów w mojej ręce:
- TTGO T-Watch, podłączony do pinów 2, 13, 14 i 15 GPIO zgodnie z 1-bitowym trybem magistrali SD, dzięki czemu może korzystać z trybu 1-bitowej magistrali SD i magistrali SPI
- Seria M5Stack, łączy się z pinami 4, 18, 19 i 23 GPIO zgodnie z natywnymi pinami VSPI, dzięki czemu może korzystać z domyślnych ustawień biblioteki SD [SD.begin(4)]
- ODROID-GO, podłączony do pinów GPIO 18, 19, 22 i 23 zgodnie z natywnymi pinami VSPI, więc może używać domyślnych ustawień biblioteki SD [SD.begin(22)]
- ESP32-CAM, jest podłączony do pinów GPIO 2, 4, 12, 13, 14 i 15 zgodnie z 4-bitowym trybem szyny SD, dzięki czemu może korzystać ze wszystkich 4-bitowych / 1-bitowych trybów szyny SD i trybu SPI
- Płytka rozwojowa TTGO T8, podłączona do pinów 2, 13, 14 i 15 GPIO zgodnie z 1-bitowym trybem magistrali SD, dzięki czemu może korzystać z 1-bitowego trybu magistrali SD i trybu magistrali SPI
www.lilygo.cn/prod_view.aspx?Id=1123
docs.m5stack.com/
wiki.odroid.com/odroid_go/odroid_go
wiki.ai-thinker.com/esp32-cam
github.com/LilyGO/TTGO-T8-ESP32
Krok 5: Płytka zaciskowa gniazda kart SD
Płytka rozwojowa z wbudowanym gniazdem kart MicroSD może nie mieć podłączonych wszystkich pinów i większość z nich nie może korzystać z trybu 4-bitowej szyny SD. Płytka zaciskowa z indywidualnym gniazdem kart SD zapewnia większą elastyczność.
W tym samym czasie wiele tabliczek zaciskowych LCD zawiera również pełnowymiarowe gniazdo kart SD. Jednak większość z nich wyłamuje tylko piny trybu SPI. Nie wystarczy używać trybu 4-bitowej szyny SD, ale nadal możesz używać jej jako trybu 1-bitowej szyny SD za pomocą tego mapowania połączenia:
LCD -> ESP32
SD_CS -> brak SD_MOSI -> 15 SD_MISO -> 2 SD_SCK -> 14
Krok 6: Odłącz GPIO 2 podczas programu
4-bitowe połączenie trybu magistrali SD sprawia, że ESP32 nie może wejść w tryb programowania. Pamiętaj o odłączeniu GPIO 2 od płytki zaciskowej gniazda karty SD DAT0 przed wgraniem nowego programu.
Krok 7: Benchmark
Napisałem prosty program Arduino do testu porównawczego:
github.com/mononournation/ESP32_SD_Benchm…
Oto sprzęt do testu porównawczego:
ESP32
NodeMCU ESP32-32S V1.1 (WROOM-32)
Gniazdo kart SD
Płytka zaciskowa gniazda karty MicroSD
Karta SD
Mam w ręku kartę SanDisk 8 GB MicroSD i starą 128 MB MicroSD.
Krok 8: 4-bitowy test porównawczy trybu SD_MMC
SanDisk 8 GB MicroSD
20:27:46.000 -> Zapis testowy /test_1k.bin
20:27:59.399 -> Zapis używanego pliku: 13404 ms, 312.914368 KB/s 20:27:59.399 -> Zapis testowy /test_2k.bin 20:28:17.248 -> Zapis używanego pliku: 17834 ms, 235.185822 KB/s 20:28:17.248 -> Zapis testowy /test_4k.bin 20:28:21.122 -> Zapis używanego pliku: 3873 ms, 1082.959961 KB/s 20:28:21.122 -> Zapis testowy /test_8k.bin 20:28:23.147 -> Zapis używanego pliku: 2024 ms, 2072.284668 KB/s 20:28:23.147 -> Test zapisu /test_16k.bin 20:28:27.237 -> Zapis używanego pliku: 4097 ms, 1023.750061 KB/s 20:28:27.237 -> Test zapis /test_32k.bin 20:28:30.088 -> Zapis używanego pliku: 2842 ms, 1475.828247 KB/s 20:28:30.088 -> Zapis testowy /test_64k.bin 20:28:31.882 -> Zapis używanego pliku: 1811 ms, 2316.015381 KB/s 20:28:31.882 -> Odczyt testowy /test_1k.bin 20:28:35.422 -> Odczytany plik: 3520 ms, 1191.563599 KB/s 20:28:35.422 -> Odczyt testowy /test_2k.bin 20: 28:38.813 -> Odczytany plik: 3389 ms, 1237.622925 KB/s 20:28:38.813 -> Odczyt testowy /test_4k.bin 20:28:42.273 -> Odczytany plik: 3474 ms, 1207.341431 KB/s 20:28:42.273 -> Odczyt testowy /test_8k.bin 20:28:45.752 - > Odczytaj użyty plik: 3487 ms, 1202.840210 KB/s 20:28:45.752 -> Odczyt testowy /test_16k.bin 20:28:48.988 -> Odczytaj użyty plik: 3213 ms, 1305.416748 KB/s 20:28:48.988 -> Odczyt testowy /test_32k.bin 20:28:52.077 -> Odczytany plik: 3093 ms, 1356.063354 KB/s 20:28:52.077 -> Odczyt testowy /test_64k.bin 20:28:55.141 -> Odczytany plik: 3080 ms, 1361.786987 KB/s
Stare 128 MB MicroSD
20:30:43.309 -> E (274) sdmmc_sd: sdmmc_check_scr: send_scr zwrócił 0x109
20:30:43.309 -> Nieudane podłączenie karty
Krok 9: 1-bitowy test trybu SD_MMC
SanDisk 8 GB MicroSD
20:31:45.194 -> Zapis testowy /test_1k.bin
20:31:59.506 -> Zapis do pliku: 14325 ms, 292.796082 KB/s 20:31:59.506 -> Zapis testowy /test_2k.bin 20:32:17.686 -> Zapis do pliku: 18163 ms, 230.925735 KB/s 20:32:17.686 -> Zapis testowy /test_4k.bin 20:32:21.291 -> Zapis używanego pliku: 3611 ms, 1161.535278 KB/s 20:32:21.291 -> Zapis testowy /test_8k.bin 20:32:23.939 -> Zapis używanego pliku: 2652 ms, 1581,562622 KB/s 20:32:23.939 -> Zapis testowy /test_16k.bin 20:32:28.397 -> Zapis używanego pliku: 4448 ms, 942.964050 KB/s 20:32:28.397 -> Test zapis /test_32k.bin 20:32:31.835 -> Zapis używanego pliku: 3429 ms, 1223.185791 KB/s 20:32:31.835 -> Zapis testowy /test_64k.bin 20:32:33.882 -> Zapis używanego pliku: 2058 ms, 2038.048584 KB/s 20:32:33.882 -> Odczyt testowy /test_1k.bin 20:32:38.031 -> Odczytany plik: 4146 ms, 1011.650757 KB/s 20:32:38.031 -> Odczyt testowy /test_2k.bin 20: 32:42.062 -> Odczytaj użyty plik: 4019 ms, 1043.618774 KB/s 20:32:42.062 -> Odczytaj test /test_4k.bin 20:32:46.170 -> Odczytaj użyty plik: 4106 ms, 1021.506104 KB/s 20:32:46.170 -> Odczyt testowy /test_8k.bin 20:32:50.288 -> Użyty plik odczytu: 4121 ms, 1017.787903 KB/s 20:32:50.288 -> Odczyt testu /test_16k.bin 20:32:54.112 -> Użyty plik odczytu: 3840 ms, 1092.266724 KB/s 20:32:54.112 -> Test read /test_32k.bin 20:32:57.840 -> Odczytaj używany plik: 3739 ms, 1121.771606 KB/s 20:32:57.840 -> Test odczytu /test_64k.bin 20:33:01.568 -> Odczytaj używany plik: 3711 ms, 1130.235474 KB/s
Stare 128 MB MicroSD
20:33:27.366 -> Zapis testowy /test_1k.bin
20:33:42.386 -> Zapis do pliku: 15020 ms, 279,247925 KB/s 20:33:42.386 -> Zapis testowy /test_2k.bin 20:33:57.927 -> Zapis do pliku: 15515 ms, 270.338654 KB/s 20:33:57.927 -> Zapis testowy /test_4k.bin 20:34:13.108 -> Zapis używanego pliku: 15195 ms, 276.031860 KB/s 20:34:13.108 -> Zapis testowy /test_8k.bin 20:34:28.162 -> Zapis używanego pliku: 15048 ms, 278.728333 KB/s 20:34:28.162 -> Test zapisu /test_16k.bin 20:34:43.287 -> Zapis używanego pliku: 15142 ms, 276.998016 KB/s 20:34:43.287 -> Test zapis /test_32k.bin 20:34:58.278 -> Zapis używanego pliku: 14964 ms, 280.292969 KB/s 20:34:58.278 -> Zapis testowy /test_64k.bin 20:35:13.370 -> Zapis używanego pliku: 15101 ms, 277.750092 KB/s 20:35:13.370 -> Odczyt testowy /test_1k.bin 20:35:17.563 -> Odczytany plik: 4197 ms, 999.357666 KB/s 20:35:17.563 -> Odczyt testowy /test_2k.bin 20: 35:21.746 -> Odczytaj użyty plik: 4191 ms, 1000.788330 KB/s 20:35:21.746 -> Odczytaj test /test_4k.bin 20:35:25.942 -> Odczytaj użyty plik: 4181 ms, 1003.182007 KB/s 20:35:25.942 -> Odczyt testowy /test_8k.bin 20:35:30.101 -> Użyty plik odczytu: 4176 ms, 1004.383118 KB/s 20:35:30.101 -> Odczyt testu /test_16k.bin 20:35:34.279 -> Użyty plik odczytu: 4174 ms, 1004.864380 KB/s 20:35:34.279 -> Test read /test_32k.bin 20:35:38.462 -> Odczytaj użyty plik: 4173 ms, 1005.105225 KB/s 20:35:38.462 -> Odczytaj test /test_64k.bin 20:35:42.612 -> Odczytaj użyty plik: 4173 ms, 1005.105225 KB/s
Krok 10: Tryb SD SPI w HSPI Bus Benchmark
SanDisk 8 GB MicroSD
08:41:19.703 -> Zapis testowy /test_1k.bin
08:41:53.458 -> Zapis używanego pliku: 33743 ms, 124.301453 KB/s 08:41:53.458 -> Zapis testowy /test_2k.bin 08:42:10.000 -> Zapis używanego pliku: 16540 ms, 253.585495 KB/s 08::42:10.000 -> Zapis testowy /test_4k.bin 08:42:17.269 -> Zapis używanego pliku: 7298 ms, 574.719666 KB/s 08:42:17.308 -> Zapis testowy /test_8k.bin 08:42:22.640 -> Zapis używanego pliku: 5345 ms, 784.715454 KB/s 08:42:22.640 -> Test zapisu /test_16k.bin 08:42:32.285 -> Zapis używanego pliku: 9662 ms, 434.103088 KB/s 08:42:32.285 -> Test zapis /test_32k.bin 08:42:36.659 -> Zapis do pliku: 4355 ms, 963.100830 KB/s 08:42:36.659 -> Zapis testowy /test_64k.bin 08:42:39.594 -> Zapis do pliku: 2949 ms, 1422.280151 KB/s 08:42:39.594 -> Odczyt testowy /test_1k.bin 08:42:44.774 -> Odczytany plik: 5192 ms, 807.839783 KB/s 08:42:44.774 -> Odczyt testowy /test_2k.bin 08: 42:49.969 -> Odczytaj użyty plik: 5189 ms, 808.306824 KB/s 08:42:49.969 -> Odczytaj test /test_4k.bin 08:42:55.123 -> Odczytaj użyty plik: 5161 ms, 812.692139 KB/s 08:42:55.158 -> Odczyt testowy /test_8k.bin 08:43:00.300 -> Odczyt użyty plik: 5176 ms, 810.336914 KB/s 08:43:00.334 -> Odczyt testowy /test_16k.bin 08:43:05.277 -> Odczytany plik: 4948 ms, 847.676636 KB/s 08:43:05.277 -> Odczyt testowy /test_32k.bin 08:43:10.028 -> Odczytaj użyty plik: 4773 ms, 878.756348 KB/s 08:43:10.028 -> Odczytaj test /test_64k.bin 08:43:14.760 -> Odczytaj użyty plik: 4731 ms, 886.557617 KB/s
Stare 128 MB MicroSD
08:43:47.777 -> Zapis testowy /test_1k.bin
08:44:04.148 -> Zapis do pliku: 16390 ms, 255.906281 KB/s 08:44:04.183 -> Zapis testowy /test_2k.bin 08:44:20.648 -> Zapis do pliku: 16494 ms, 254.292709 KB/s 08:44:20.648 -> Zapis testowy /test_4k.bin 08:44:36.674 -> Zapis używany plik: 16001 ms, 262.127625 KB/s 08:44:36.674 -> Zapis testowy /test_8k.bin 08:44:52.849 -> Używany plik zapisu: 16175 ms, 259.307831 KB/s 08:44:52.849 -> Zapis testowy /test_16k.bin 08:45:09.225 -> Używany plik zapisu: 16397 ms, 255.797043 KB/s 08:45:09.225 -> Test zapis /test_32k.bin 08:45:25.363 -> Zapis używanego pliku: 16143 ms, 259.821838 KB/s 08:45:25.397 -> Zapis testowy /test_64k.bin 08:45:41.632 -> Zapis używanego pliku: 16263 ms, 257,904694 KB/s 08:45:41.632 -> Odczyt testowy /test_1k.bin 08:45:46.488 -> Odczytany plik: 4856 ms, 863.736389 KB/s 08:45:46.488 -> Odczyt testowy /test_2k.bin 08: 45:51.332 -> Odczytany plik: 4840 ms, 866.591736 KB/s 08:45:51.332 -> Odczyt testowy /test_4k.bin 08:45:56.163 -> Odczytany plik: 4834 ms, 867,667358 KB/s 08:45:56.163 -> Odczyt testowy /test_8k.bin 08:46:00.998 -> R Wykorzystany plik ead: 4827 ms, 868.925598 KB/s 08:46:00.998 -> Odczyt testu /test_16k.bin 08:46:05.808 -> Wykorzystany plik odczytu: 4825 ms, 869.285828 KB/s 08:46:05.843 -> Test read /test_32k.bin 08:46:10.637 -> Odczytaj użyty plik: 4824 ms, 869.466003 KB/s 08:46:10.637 -> Odczytaj test /test_64k.bin 08:46:15.478 -> Odczytaj użyty plik: 4825 ms, 869,285828 KB/s
Krok 11: Tryb SD SPI w VSPI Bus Benchmark
SanDisk 8 GB MicroSD
08:54:17.412 -> Zapis testowy /test_1k.bin
08:54:48.398 -> Zapis do pliku: 30994 ms, 135.326324 KB/s 08:54:48.398 -> Zapis testowy /test_2k.bin 08:55:06.079 -> Zapis do pliku: 17677 ms, 237.274658 KB/s 08:55:06.079 -> Zapis testowy /test_4k.bin 08:55:13.357 -> Zapis używany plik: 7274 ms, 576.615906 KB/s 08:55:13.357 -> Zapis testowy /test_8k.bin 08:55:18.691 -> Zapis używanego pliku: 5323 ms, 787,958679 KB/s 08:55:18.691 -> Test zapisu /test_16k.bin 08:55:28.336 -> Zapis używanego pliku: 9669 ms, 433.788818 KB/s 08:55:28.336 -> Test zapis /test_32k.bin 08:55:32.646 -> Zapis używanego pliku: 4309 ms, 973.382202 KB/s 08:55:32.646 -> Zapis testowy /test_64k.bin 08:55:35.551 -> Zapis używanego pliku: 2915 ms, 1438,869263 KB/s 08:55:35.584 -> Odczyt testowy /test_1k.bin 08:55:40.745 -> Odczytany plik: 5183 ms, 809.242554 KB/s 08:55:40.745 -> Odczyt testowy /test_2k.bin 08: 55:45.916 -> Odczytaj użyty plik: 5182 ms, 809.398682 KB/s 08:55:45.949 -> Odczytaj test /test_4k.bin 08:55:51.091 -> Odczytaj użyty plik: 5162 ms, 812.534668 KB/s 08:55:51.091 -> Odczyt testowy /test_8k.bin 08:55:56.257 -> Odczyt używany plik: 5177 ms, 810.180420 KB/s 08:55:56.293 -> Odczyt testowy /test_16k.bin 08:56:01.244 -> Odczyt używany plik: 4956 ms, 846.308289 KB/s 08:56:01.244 -> Odczyt testowy /test_32k.bin 08:56:06.006 -> Odczytaj użyty plik: 4764 ms, 880.416443 KB/s 08:56:06.006 -> Odczytaj test /test_64k.bin 08:56:10.716 -> Odczytaj użyty plik: 4728 ms, 887.120117 KB/s
Stare 128 MB MicroSD
08:51:01.939 -> Zapis testowy /test_1k.bin
08:51:18.358 -> Zapis do pliku: 16422 ms, 255.407623 KB/s 08:51:18.358 -> Zapis testowy /test_2k.bin 08:51:34.529 -> Zapis do pliku: 16173 ms, 259,339874 KB/s 08::51:34.529 -> Zapis testowy /test_4k.bin 08:51:50.911 -> Zapis używanego pliku: 16372 ms, 256.187653 KB/s 08:51:50.911 -> Zapis testowy /test_8k.bin 08:52:07.056 -> Używany plik zapisu: 16137 ms, 259.918457 KB/s 08:52:07.056 -> Zapis testowy /test_16k.bin 08:52:23.383 -> Używany plik zapisu: 16351 ms, 256.516663 KB/s 08:52:23.383 -> Test zapis /test_32k.bin 08:52:39.533 -> Zapis do pliku: 16128 ms, 260.063507 KB/s 08:52:39.533 -> Zapis testowy /test_64k.bin 08:52:55.764 -> Zapis do pliku: 16250 ms, 258.111023 KB/s 08:52:55.764 -> Odczyt testowy /test_1k.bin 08:53:00.645 -> Odczytany plik: 4855 ms, 863.914307 KB/s 08:53:00.645 -> Odczyt testowy /test_2k.bin 08: 53:05.459 -> Odczytaj użyty plik: 4839 ms, 866.770813 KB/s 08:53:05.459 -> Odczytaj test /test_4k.bin 08:53:10.306 -> Odczytaj użyty plik: 4833 ms, 867.846863 KB/s 08:53:10.306 -> Odczyt testu /test_8k.bin 08:53:15.127 -> R Wykorzystany plik ead: 4827 ms, 868.925598 KB/s 08:53:15.127 -> Odczyt testu /test_16k.bin 08:53:19.963 -> Użyty plik odczytu: 4826 ms, 869.105652 KB/s 08:53:19.963 -> Test read /test_32k.bin 08:53:24.758 -> Odczytany plik: 4824 ms, 869.466003 KB/s 08:53:24.792 -> Odczyt testowy /test_64k.bin 08:53:29.592 -> Odczytany plik: 4824 ms, 869.466003 KB/s
Krok 12: Zaokrąglaj
4-bitowy tryb szyny SD ma najlepszą wydajność, 1-bitowy tryb szyny SD jest o około 20% wolniejszy, a tryb SPI jest o około 50% wolniejszy. Jednym z głównych powodów jest to, że warstwa protokołu SD_MMC nie implementuje żadnego rodzaju blokowania, ale SPI tak. A także 4-bitowy tryb magistrali SD ma podwójne linie danych, więc teoretycznie podwaja prędkość. Ale mój stary MicroSD nie obsługuje trybu 4-bitowej szyny SD.
W większości przypadków będę polecał 1-bitową magistralę SD, ponieważ:
- dobry występ
- lepsza kompatybilność kart SD
- luźniejsze wymagania SD Pull-up
- wymagane tylko 3 piny GPIO
- mniejsza konfiguracja kodu
- wiele zestawów deweloperskich, tablic deweloperskich i tabliczek typu breakout może korzystać z tego trybu
Zalecana:
Wybierz tytuł i słowa kluczowe dla swojej instrukcji: 6 kroków (ze zdjęciami)
Wybierz tytuł i słowa kluczowe dla swoich instrukcji: Wybór odpowiedniego tytułu i słów kluczowych może być różnicą między instruktażowym przejściem na pierwszą stronę wyników wyszukiwania Google a awarią i spaleniem w przerażającej krainie bez wyświetleń. Chociaż słowa kluczowe i tytuł to nie jedyne
Wybierz zamienniki czujnika w obwodach Tinkercad: 3 kroki (ze zdjęciami)
Wybierz zamienniki czujników w obwodach Tinkercad: Zgodnie z projektem Tinkercad Circuits zawiera ograniczoną bibliotekę powszechnie używanych komponentów elektronicznych. Ta selekcja ułatwia początkującym poruszanie się po złożoności świata elektroniki bez przytłaczania. Minusem jest to, że jeśli
Arduino RGB Color Picker – Wybierz kolory z rzeczywistych obiektów: 7 kroków (ze zdjęciami)
Arduino RGB Color Picker – Wybierz kolory z rzeczywistych obiektów: Łatwo wybieraj kolory z obiektów fizycznych za pomocą tego próbnika kolorów RGB opartego na Arduino, co pozwala odtworzyć kolory, które widzisz w rzeczywistych obiektach na komputerze lub telefonie komórkowym. Wystarczy nacisnąć przycisk, aby zeskanować kolor obiektu za pomocą taniego TCS347
Arduino dla początkujących: Interfejs Arduino z wyświetlaczem LCD 16x2 Objaśnienie: 5 kroków
Arduino dla początkujących: Interfejs Arduino z wyświetlaczem LCD 16x2 Wyjaśnienie: Witam wszystkich,W dzisiejszych czasach Arduino stało się bardzo popularne i wszyscy to akceptują ze względu na łatwość kodowania. Stworzyłem serię Arduino Basics, która pomaga początkującym, początkującym i nawet programiści, aby moduł działał. To jest
Wybierz się w podróż: 16 kroków (ze zdjęciami)
Wyrusz w podróż: Tak więc byłem uwięziony, gdy nagle, jak światło w ciemności, list z ofertą stażu w Squid Labs rozerwał moje kajdany i byłem wolny. Było tylko jedno zastrzeżenie: musiałem przedostać się przez cały kraj do słonecznej Alameda, C