{"id":78822,"date":"2024-01-29T14:00:26","date_gmt":"2024-01-29T13:00:26","guid":{"rendered":"https:\/\/botland.com.pl\/blog\/raspberry-pi-pico-5-petle-zmienne-i-instrukcje-warunkowe\/"},"modified":"2026-04-08T11:01:23","modified_gmt":"2026-04-08T09:01:23","slug":"raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen","status":"publish","type":"post","link":"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\/","title":{"rendered":"Raspberry Pi Pico Kurs &#8211; #5 &#8211; Schleifen, Variablen und bedingte Anweisungen"},"content":{"rendered":"<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Lesezeit<\/span> <span class=\"rt-time\"> 14<\/span> <span class=\"rt-label rt-postfix\">min.<\/span><\/span>\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"78822\" class=\"elementor elementor-78822 elementor-75086\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1f44a40 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1f44a40\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2285c33\" data-id=\"2285c33\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-489a829 elementor-widget elementor-widget-text-editor\" data-id=\"489a829\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"font-weight: 400\"><a href=\"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-4-erste-schritte-in-der-programmierung\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\"><strong>Im vorherigen Tutorial<\/strong><\/a> haben wir uns darauf konzentriert, unser erstes Projekt von Grund auf vorzubereiten, um drei LEDs zu steuern. Damit haben Sie die ersten Funktionen gelernt, um die RPI-Leitungen des Pico W zu steuern und den Betrieb des ausgef\u00fchrten Programms zu verwalten. Au\u00dferdem haben Sie die erste Art von Schleife in der Sprache C kennengelernt, sowie die so genannten blockierenden Funktionen und welche Gefahren sie mit sich bringen. Der Schwerpunkt dieses Artikels liegt auf eher theoretischen Fragen im Zusammenhang mit der Sprache C. Er f\u00fchrt Sie in weitere Arten von Schleifen, bedingten Anweisungen und Variablen ein. Nat\u00fcrlich werden wir trotz des eher theoretischen Themas alle Programmierkonstrukte in die Praxis umsetzen.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5b5b8a9 elementor-widget elementor-widget-image\" data-id=\"5b5b8a9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2024\/05\/4Gotowy-Zestaw-do-nauki-programowania-z-Raspberry-Pi-Pico-W.jpg\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"4Gotowy-Zestaw-do-nauki-programowania-z-Raspberry-Pi-Pico-W\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6ODMzMzQsInVybCI6Imh0dHBzOlwvXC9ib3RsYW5kLmRlXC9ibG9nXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI0XC8wNVwvNEdvdG93eS1aZXN0YXctZG8tbmF1a2ktcHJvZ3JhbW93YW5pYS16LVJhc3BiZXJyeS1QaS1QaWNvLVcuanBnIn0%3D\" data-wpel-link=\"internal\">\n\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1429\" height=\"194\" src=\"https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/05\/4Gotowy-Zestaw-do-nauki-programowania-z-Raspberry-Pi-Pico-W.jpg\" class=\"attachment-full size-full wp-image-83334\" alt=\"\" srcset=\"https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/05\/4Gotowy-Zestaw-do-nauki-programowania-z-Raspberry-Pi-Pico-W.jpg 1429w, https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/05\/4Gotowy-Zestaw-do-nauki-programowania-z-Raspberry-Pi-Pico-W-300x41.jpg 300w, https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/05\/4Gotowy-Zestaw-do-nauki-programowania-z-Raspberry-Pi-Pico-W-1024x139.jpg 1024w, https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/05\/4Gotowy-Zestaw-do-nauki-programowania-z-Raspberry-Pi-Pico-W-768x104.jpg 768w\" sizes=\"(max-width: 1429px) 100vw, 1429px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-8614b20 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"8614b20\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-c0eb79c\" data-id=\"c0eb79c\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c94e6ca elementor-widget elementor-widget-image\" data-id=\"c94e6ca\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2024\/01\/24136_3.jpg\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"24136_3\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6NzYxNjMsInVybCI6Imh0dHBzOlwvXC9ib3RsYW5kLmRlXC9ibG9nXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI0XC8wMVwvMjQxMzZfMy5qcGcifQ%3D%3D\" data-wpel-link=\"internal\">\n\t\t\t\t\t\t\t<img decoding=\"async\" width=\"300\" height=\"273\" src=\"https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/24136_3-300x273.jpg\" class=\"attachment-medium size-medium wp-image-76163\" alt=\"\" srcset=\"https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/24136_3-300x273.jpg 300w, https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/24136_3-1024x933.jpg 1024w, https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/24136_3-768x700.jpg 768w, https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/24136_3.jpg 1080w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-fcd6b3b\" data-id=\"fcd6b3b\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-05aaf9b elementor-widget elementor-widget-text-editor\" data-id=\"05aaf9b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: bolder\">Kaufen Sie ein Set, um das Programmieren mit dem Raspberry Pi Pico W zu erlernen, und nutzen Sie die Vorteile des Kurses, der im Botland Blog verf\u00fcgbar ist!<\/span><\/p>\n<p>Im Set enthalten: Raspberry Pi Pico W-Modul, Kontaktplatte, Leitungen, LEDs, Widerst\u00e4nde, Tasten, Fotowiderst\u00e4nde, digitale Licht-, Temperatur-, Feuchtigkeits- und Drucksensoren, OLED-Display und ein USB-microUSB-Kabel.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-666f5e4 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"666f5e4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/botland.de\/module-und-sets-fuer-raspberry-pi-pico\/24136-programmieren-lernen-mit-dem-raspberry-pi-pico-w-kit.html\" data-wpel-link=\"internal\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">BESUCHE BOTLAND!<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<div class=\"elementor-element elementor-element-4f6b29d elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"4f6b29d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dcd6c61 elementor-widget elementor-widget-text-editor\" data-id=\"dcd6c61\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>Inhaltsverzeichnis:<\/strong><\/p>\n<ol style=\"background-color: #ffffff;\">\n<li style=\"font-size: 16px;\"><a href=\"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-1-einstieg\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\"><span style=\"font-weight: bolder;\">Raspberry Pi Pico &#8211; #1<\/span> &#8211; Einstieg <\/a><\/li>\n<li style=\"font-size: 16px;\"><a href=\"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-2-ein-paar-worte-zur-programmierung\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\"><span style=\"font-weight: bolder;\">Raspberry Pi Pico &#8211; #2<\/span> &#8211; ein paar Worte zur Programmierung<\/a><\/li>\n<li style=\"font-size: 16px;\"><a href=\"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-3-erstes-programm\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\"><span style=\"font-weight: bolder;\">Raspberry Pi Pico &#8211; #3<\/span> &#8211; erstes Programm<\/a><\/li>\n<li style=\"font-size: 16px;\"><a href=\"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-4-erste-schritte-in-der-programmierung\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\"><span style=\"font-weight: bolder;\">Raspberry Pi Pico &#8211; #4<\/span> &#8211; wir beginnen mit der Programmierung<\/a><\/li>\n<li style=\"font-size: 16px;\"><a href=\"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\"><span style=\"font-weight: bolder;\">Raspberry Pi Pico &#8211; #5<\/span> &#8211; Schleifen, Variablen und bedingte Anweisungen <\/a><\/li>\n<li style=\"font-size: 16px;\"><a href=\"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-6-pwm-adc-und-kommunikation-mit-dem-computer\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\"><strong>Raspberry Pi Pico &#8211; #6<\/strong> &#8211; PWM, ADC und Kommunikation mit dem Computer<\/a><\/li>\n<li><a href=\"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-7-code-korrekturen-und-eigene-funktionen\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\"><span style=\"font-weight: bolder;\">Raspberry Pi Pico &#8211; #7<\/span> &#8211; Codekorrekturen und eigene Funktionen <\/a><\/li>\n<li><a href=\"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-8-unterbrechungen-und-alarme\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\"><strong>Raspberry Pi Pico &#8211; #8<\/strong> &#8211; Unterbrechungen und Alarme<\/a><\/li>\n<li><a href=\"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-9-indikatorentheorie-und-timer\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\"><span style=\"font-weight: bolder;\">Raspberry Pi Pico &#8211; #9<\/span> &#8211; Indikatorentheorie und Timer<\/a><\/li>\n<li><a href=\"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-10-arrays-strukturen-und-zustandsautomaten\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\"><strong>Raspberry Pi Pico &#8211; #10<\/strong> &#8211; Arrays, Strukturen und Zustandsautomaten<\/a><\/li>\n<\/ol>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-175f31c elementor-widget elementor-widget-spacer\" data-id=\"175f31c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c5f3071 elementor-widget elementor-widget-heading\" data-id=\"c5f3071\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Vor dem Start sollte das Team zusammengestellt werden<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bc5908f elementor-widget elementor-widget-image\" data-id=\"bc5908f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2024\/01\/IMG_0647-scaled.jpg\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"IMG_0647\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6NzQ4MDAsInVybCI6Imh0dHBzOlwvXC9ib3RsYW5kLmRlXC9ibG9nXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI0XC8wMVwvSU1HXzA2NDctc2NhbGVkLmpwZyJ9\" data-wpel-link=\"internal\">\n\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"450\" src=\"https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/IMG_0647-1024x576.jpg\" class=\"attachment-large size-large wp-image-74800\" alt=\"\" srcset=\"https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/IMG_0647-1024x576.jpg 1024w, https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/IMG_0647-300x169.jpg 300w, https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/IMG_0647-768x432.jpg 768w, https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/IMG_0647-1536x864.jpg 1536w, https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/IMG_0647-2048x1152.jpg 2048w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Ein Satz von Komponenten f\u00fcr den Raspberry Pi Pico Kurs.<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b5bdd11 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"b5bdd11\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/botland.de\/module-und-sets-fuer-raspberry-pi-pico\/24136-programmieren-lernen-mit-dem-raspberry-pi-pico-w-kit.html\" data-wpel-link=\"internal\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">SIEHE HIER<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8ad6b77 elementor-widget elementor-widget-text-editor\" data-id=\"8ad6b77\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Wer das Programmieren anhand von realen Projekten erlernen m\u00f6chte, braucht nat\u00fcrlich die richtige Ausr\u00fcstung, aber keine Sorge &#8211; Sie m\u00fcssen jetzt nicht von einem Artikel zum n\u00e4chsten springen und eine Liste der ben\u00f6tigten elektronischen Komponenten erstellen. Im <a style=\"background-color: #ffffff\" href=\"https:\/\/botland.de\" target=\"_blank\" rel=\"noopener nofollow external noreferrer\" data-wpel-link=\"external\"><span style=\"font-weight: bolder\">Botland<\/span><\/a>-Shop ist ein <a style=\"background-color: #ffffff\" href=\"https:\/\/botland.de\/module-und-sets-fuer-raspberry-pi-pico\/24136-programmieren-lernen-mit-dem-raspberry-pi-pico-w-kit.html\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\"><span style=\"font-weight: bolder\">fertiges Set<\/span><\/a> erh\u00e4ltlich, das alle notwendigen Komponenten enth\u00e4lt, um die in der Tutorial-Reihe beschriebenen Projekte mit dem Raspberry Pi Pico durchzuf\u00fchren. <\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ade982d elementor-widget elementor-widget-text-editor\" data-id=\"ade982d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>In dem <a href=\"https:\/\/botland.de\/module-und-sets-fuer-raspberry-pi-pico\/24136-programmieren-lernen-mit-dem-raspberry-pi-pico-w-kit.html\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\"><span style=\"font-weight: bolder\">fertigen Set<\/span><\/a> von Elementen finden Sie:<\/p>\n<ul style=\"font-size: 16px;background-color: #ffffff\">\n<li style=\"font-size: 16px\">Raspberry Pi Pico W,<\/li>\n<li style=\"font-size: 16px\">MicroUSB-Kabel,<\/li>\n<li style=\"font-size: 16px\">Kontaktplatte,<\/li>\n<li style=\"font-size: 16px\">Ein Set von Anschlusskabeln in drei Ausf\u00fchrungen,<\/li>\n<li style=\"font-size: 16px\">Ein Set von LEDs in drei Farben,<\/li>\n<li style=\"font-size: 16px\">Ein Set der in der Elektronik am h\u00e4ufigsten verwendeten Widerst\u00e4nde,<\/li>\n<li style=\"font-size: 16px\">Tact Switch-Tasten,<\/li>\n<li style=\"font-size: 16px\">Fotowiderst\u00e4nde,<\/li>\n<li style=\"font-size: 16px\">Digitaler Lichtsensor,<\/li>\n<li style=\"font-size: 16px\">Digitaler Feuchtigkeits-, Temperatur- und Drucksensor,<\/li>\n<li style=\"font-size: 16px\">OLED-Display.<\/li>\n<\/ul>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-96fe5bc elementor-widget elementor-widget-spacer\" data-id=\"96fe5bc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-89932f8 elementor-widget elementor-widget-heading\" data-id=\"89932f8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Schaltungserweiterung und neues Design<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7ce2acc elementor-widget elementor-widget-image\" data-id=\"7ce2acc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2024\/01\/IMG_0580-scaled.jpg\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"IMG_0580\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6NzUwOTEsInVybCI6Imh0dHBzOlwvXC9ib3RsYW5kLmRlXC9ibG9nXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI0XC8wMVwvSU1HXzA1ODAtc2NhbGVkLmpwZyJ9\" data-wpel-link=\"internal\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"450\" src=\"https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/IMG_0580-1024x576.jpg\" class=\"attachment-large size-large wp-image-75091\" alt=\"\" srcset=\"https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/IMG_0580-1024x576.jpg 1024w, https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/IMG_0580-300x169.jpg 300w, https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/IMG_0580-768x432.jpg 768w, https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/IMG_0580-1536x864.jpg 1536w, https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/IMG_0580-2048x1152.jpg 2048w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Erweiterte Schaltung aus einem fr\u00fcheren Projekt.<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-331d0ea elementor-widget elementor-widget-text-editor\" data-id=\"331d0ea\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"font-weight: 400\">Es ist nat\u00fcrlich, dass in komplexeren Projekten <a href=\"https:\/\/botland.de\/22-mikrocontroller\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\"><strong>Mikrocontroller<\/strong><\/a> nicht nur die Peripherieger\u00e4te steuert, sondern auch auf externe Signale reagieren k\u00f6nnen. Eine der einfachsten M\u00f6glichkeiten, diese Art von Signal zu erzeugen, w\u00e4re der Anschluss einer kleinen Taste an den <a href=\"https:\/\/botland.de\/module-und-sets-fuer-raspberry-pi-pico\/21574-raspberry-pi-pico-w-rp2040-arm-cortex-m0-cyw43439-wlan-5056561803173.html\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\"><strong>RPI Pico W<\/strong><\/a>. In den folgenden Codes verlassen wir uns wie bisher auf die angeschlossenen LEDs und den zus\u00e4tzlichen <strong>Switch<\/strong>, der mit dem GP16-Pin verbunden ist. Wenn die Taste gedr\u00fcckt wird, wird der Pin des RP2040 mit GND verbunden, also sollte sein zweites Beinchen mit GND verbunden werden. <\/p>\n<p style=\"font-weight: 400\">Zus\u00e4tzlich zu einer leicht ver\u00e4nderten Schaltung ist auch ein neues Projekt erforderlich. Wir erstellen es genauso wie das aus dem vierten Artikel und der einzige Unterschied ist der Name &#8211; loops_and_if. Denken Sie daran, die Codedatei auf die gleiche Weise zu benennen und CMakeLists zu erstellen.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cf89134 elementor-widget elementor-widget-image\" data-id=\"cf89134\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2024\/01\/make-loops-adn-if.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"make loops adn if\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6NzUwOTUsInVybCI6Imh0dHBzOlwvXC9ib3RsYW5kLmRlXC9ibG9nXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI0XC8wMVwvbWFrZS1sb29wcy1hZG4taWYucG5nIn0%3D\" data-wpel-link=\"internal\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"464\" height=\"273\" src=\"https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/make-loops-adn-if.png\" class=\"attachment-large size-large wp-image-75095\" alt=\"\" srcset=\"https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/make-loops-adn-if.png 464w, https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/make-loops-adn-if-300x177.png 300w\" sizes=\"(max-width: 464px) 100vw, 464px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">CMakeLists.txt im Projekt loops_and_if.<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-840243d elementor-widget elementor-widget-text-editor\" data-id=\"840243d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"font-weight: 400\">Wie zuvor sind beide generierten Dateien leer. Wir werden uns gleich mit dem Code befassen, aber es lohnt sich schon jetzt, die Make-Datei zu vervollst\u00e4ndigen. Ihre Struktur bleibt vorerst unver\u00e4ndert. Sie k\u00f6nnen also versuchen, sie selbst zu schreiben, indem Sie sich an der Version aus dem vorherigen Projekt orientieren und dabei die Korrektheit der Namen im Auge behalten. Schlie\u00dflich k\u00f6nnen Sie sie mit meiner Datei vergleichen, deren Code Sie in der Abbildung oben sehen k\u00f6nnen. Schlie\u00dflich m\u00fcssen Sie das Projekt auch in der Datei CMakeLists.txt hinzuf\u00fcgen, die den gesamten Ordner pico-examples behandelt; auch hier ist die Vorgehensweise identisch mit der des vorherigen Materials. <\/p>\n<p style=\"font-weight: 400\">Es ist eine gute Idee, das Erstellen neuer Projekte ein paar Mal zu \u00fcben, und Sie k\u00f6nnen versuchen, Ihre eigenen, vorerst leeren Projekte hinzuzuf\u00fcgen. In Zukunft werde ich nicht mehr erw\u00e4hnen, wie das ganze Verfahren abl\u00e4uft, es sei denn, es gibt irgendwelche \u00c4nderungen.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e6ba2bc elementor-widget elementor-widget-heading\" data-id=\"e6ba2bc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Bedingte if-Anweisung, d.h. Reaktion auf einen Schalter <\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-941c6a4 elementor-widget elementor-widget-code-highlight\" data-id=\"941c6a4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-c line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-c\">\n\t\t\t\t\t<xmp>#include \"pico\/stdlib.h\"\r\n\r\n#define GREEN_LED 0 \/\/assigning names to specific values\r\n#define SW_PIN 16\r\n\r\nint main() {\r\n    gpio_init(SW_PIN); \/\/initialization and setting of pin mode\r\n    gpio_init(GREEN_LED);\r\n\r\n    gpio_set_dir(SW_PIN, GPIO_IN);\r\n    gpio_set_dir(GREEN_LED, GPIO_OUT);\r\n    \r\n    gpio_pull_up(SW_PIN); \/\/SW_PIN pull-up to power supply\r\n    \r\n    while (true) {\r\n        bool state = gpio_get(SW_PIN); \/\/SW_PIN value reading\r\n\r\n        if (state == true) \/\/check the state of the state variable\r\n        {\r\n            gpio_put(GREEN_LED, 1);\r\n        }\r\n        else \/\/if the state variable has a value other than true\r\n        {\r\n            gpio_put(GREEN_LED, 0);\r\n        }\r\n    }\r\n}\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-150e40a elementor-widget elementor-widget-text-editor\" data-id=\"150e40a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"font-weight: 400\">Programme <strong>in der Sprache C<\/strong> sind nicht nur Anweisungen, die nacheinander ausgef\u00fchrt werden. Ein sehr h\u00e4ufiger Fall ist, dass wir m\u00f6chten, dass nur <strong>ein bestimmter Teil des Codes<\/strong> ausgef\u00fchrt wird, abh\u00e4ngig von externen Faktoren. Wir k\u00f6nnen diese Art von Situation in diesem Beispiel \u00fcben, indem wir zum ersten Mal eine <strong>bedingte Anweisung<\/strong> verwenden, deren Aufgabe es ist, auf der Grundlage des Signals der Taste zu entscheiden, ob die LED leuchtet oder nicht. In diesem Beispiel werden wir versuchen, die Leuchtdiode entsprechend dem Zustand von GP16 anzusteuern, d.h. <strong>wenn dort eine hohe Spannung anliegt, leuchtet die Diode auf und bei fehlender Spannung leuchtet die Diode nicht auf.<\/strong> <\/p>\n<p style=\"font-weight: 400\">Erinnern Sie sich einen Moment an den Code, den wir bei einem fr\u00fcheren Projekt geschrieben haben. Er funktionierte zwar, aber ehrlich gesagt, sah er nicht besonders gut aus. Wenn wir die Leitung, an die eine der Dioden angeschlossen ist, \u00e4ndern wollten, m\u00fcssten wir mehrere Codezeilen manuell bearbeiten. Im Falle von noch mehr \u00c4nderungen am Programm lohnt es sich also, den Code etwas anders zu schreiben, um sp\u00e4tere \u00c4nderungen zu erleichtern. Die L\u00f6sung ist hier die <strong>Detektive #define<\/strong>. Dank ihr m\u00fcssen wir nicht mehr in allen Funktionen die numerische Bezeichnung einer bestimmten Leitung verwenden. Von nun an wird GP0 als GREEN_LED dargestellt, w\u00e4hrend GP16, an dem die Taste angeschlossen ist, SW_PIN hei\u00dft. Wenn wir die Anschlussbelegung eines Peripherieger\u00e4ts \u00e4ndern m\u00f6chten, m\u00fcssen wir nur die Nummer neben der #define-Direktive \u00e4ndern.<\/p>\n<p style=\"font-weight: 400\">Der Beginn der Hauptfunktion main ist uns bereits bekannt, hier geht es um die Initialisierung und die Einstellung des Modus der verwendeten Leitungen. Beachten Sie jedoch, dass wir jetzt nicht mehr ihre digitalen Bezeichnungen verwenden m\u00fcssen. Dies ist dank des oben erw\u00e4hnten #define-Befehls m\u00f6glich. Beachten Sie auch den Modus SW_PIN, denn dieses Mal wird diese Leitung der Eingang f\u00fcr das von der Taste kommende Signal sein. Wir m\u00fcssen die Beschreibung GPIO_IN verwenden. Neu in diesem Codeschnipsel ist die Anweisung gpio_pull_up. Damit wird der GP16 intern auf die Versorgungsspannung gezogen.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1f8af48 elementor-widget elementor-widget-image\" data-id=\"1f8af48\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2024\/01\/pullup_resistor.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"pullup_resistor\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6NzUwOTksInVybCI6Imh0dHBzOlwvXC9ib3RsYW5kLmRlXC9ibG9nXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI0XC8wMVwvcHVsbHVwX3Jlc2lzdG9yLnBuZyJ9\" data-wpel-link=\"internal\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"429\" src=\"https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/pullup_resistor-1024x549.png\" class=\"attachment-large size-large wp-image-75099\" alt=\"\" srcset=\"https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/pullup_resistor-1024x549.png 1024w, https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/pullup_resistor-300x161.png 300w, https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/pullup_resistor-768x412.png 768w, https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/pullup_resistor-1536x824.png 1536w, https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/pullup_resistor-2048x1098.png 2048w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Modul zur Unterst\u00fctzung der Leitungen im RP2040. (https:\/\/datasheets.raspberrypi.com\/rp2040\/rp2040-datasheet.pdf)<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1cf1155 elementor-widget elementor-widget-text-editor\" data-id=\"1cf1155\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"font-weight: 400\">Da der Anschluss des RP2040 als Signaleingang dient, m\u00fcssen wir den Zustand bestimmen, in dem es sich befindet, wenn es frei ist. Wenn die Taste nicht gedr\u00fcckt wird, erreicht den <strong>RPI Pico W<\/strong> kein Signal, sondern der Eingang befindet sich in einem \u00dcbergangszustand. Wir wissen nicht, was von ihm gelesen wird und wie das Programm darauf reagieren wird, also m\u00fcssen wir den Standardzustand dieses Pins bestimmen. Unsere Taste schlie\u00dft den Eingang mit Masse kurz, also werden wir ihn per Software auf die Versorgungsspannung hochziehen, so dass er sich im High-Zustand befindet, wenn die Taste nicht gedr\u00fcckt wird. Daf\u00fcr wird der gpio_pull_up Befehl verwendet. Wenn wir einen Pull-Down-Befehl gegen Masse verwenden wollten, w\u00fcrden wir den gpio_pull_down-Befehl verwenden.<\/p>\n<p style=\"font-weight: 400\">Ein interessanter Aspekt des Hochziehens von Signalen auf bestimmte Zust\u00e4nde ist die Art und Weise, wie dieser Prozess im Mikrocontroller implementiert ist. In der Elektronik geschieht dies mit <a href=\"https:\/\/botland.de\/50-widerstande-widerstande\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\"><strong>Widerst\u00e4nden<\/strong><\/a> von entsprechendem Wert, aber im RP2040 und in anderen Mikrocontrollern werden <strong>MOS-Transistoren<\/strong> verwendet, deren Drain-Source-\u00dcbergang als ein solcher Widerstand fungiert.<\/p>\n<p style=\"font-weight: 400\">Kehren wir jedoch zu unserem Code zur\u00fcck. In der unendlichen while-Schleife, die Sie beim letzten Mal kennen gelernt haben, befindet sich ein geheimnisvoller Befehl, der mit dem Schl\u00fcsselwort <strong>bool<\/strong> beginnt. Diese Anweisung weist der Variablen state den Zustand des Signals SW_PIN zu. In der Sprache C werden Variablen sehr h\u00e4ufig verwendet und k\u00f6nnen als universelle Boxen f\u00fcr Daten beschrieben werden, die logische Zust\u00e4nde, Zahlen oder Zeichen sein k\u00f6nnen. Was eine Variable ist, wird durch das ihr vorangestellte Schl\u00fcsselwort bestimmt. In diesem Fall ist ein bool <strong>eine Variable<\/strong>, die den logischen Zustand true oder false annehmen kann. Wenn eine Variable dank des Zuweisungsoperators &#8220;=&#8221; referenziert wird, nimmt sie sofort den von der Funktion gpio_get gelesenen Zustand an. Wenn diese Anweisung ausgef\u00fchrt wird, enth\u00e4lt die Statusvariable also den gespeicherten Status des SW_PIN-Pins. Wenn die Taste gedr\u00fcckt wurde und dieser Pin mit Masse kurzgeschlossen war, wird false in die Variable geschrieben. Andernfalls nimmt die Variable den Zustand true an.<\/p>\n<p style=\"font-weight: 400\">Die Variablen, die wir in dem Code verwenden k\u00f6nnen, sind recht zahlreich. Die meisten von ihnen beziehen sich auf numerische Daten, aber es gibt auch einige, in denen wir alphanumerische Zeichen und logische Zust\u00e4nde speichern k\u00f6nnen. Obwohl es wichtig ist, sich daran zu erinnern, dass aus technischer Sicht f\u00fcr den Mikrocontroller jede Variable eigentlich eine identische Folge von Einsen und Nullen ist. In unseren Codes werden wir haupts\u00e4chlich Variablen verwenden, die ganze Zahlen mit oder ohne Vorzeichen zulassen, wof\u00fcr int und uint verwendet werden. Jede Variable kann 8, 16, 32 oder 64 Bits haben. Je mehr Bits, desto gr\u00f6\u00dfer ist der Zahlenbereich, den die Variable abdeckt. Aber mehr Bits bedeuten auch mehr Speicherplatz, und dieser ist begrenzt, so dass es sinnvoll ist, so wenige Variablen wie m\u00f6glich zu w\u00e4hlen.<\/p>\n<ul>\n<li>int8_t &#8211; 8-Bit Ganzzahl-Variable (-128, +127),<\/li>\n<li>int16_t &#8211; 16-Bit Ganzzahl-Variable (-16384, 16383),<\/li>\n<li>int32_t &#8211; 32-Bit Ganzzahl-Variable (-2^31, 2^31-1),<\/li>\n<li>int64_t &#8211; 64-Bit Ganzzahl-Variable (-2^63, 2^63-1),<\/li>\n<li>uint8_t &#8211; eine 8-Bit Ganzzahl-Variable ohne Vorzeichen (0, 255),<\/li>\n<li>uint16_t &#8211; 16-Bit Ganzzahl-Variable ohne Vorzeichen (0.65535),<\/li>\n<li>uint32_t &#8211; 32-Bit Ganzzahl-Variable ohne Vorzeichen (0, 2^32-1),<\/li>\n<li>uint64_t &#8211; eine 64-Bit Ganzzahl-Variable ohne Vorzeichen (0, 2^64-1).<\/li>\n<\/ul>\n<p style=\"font-weight: 400\">Neben den Variablen f\u00fcr ganze Zahlen k\u00f6nnen wir auch zwischen dem bereits bekannten bool, char, in dem Zeichen gespeichert werden, und den Typen zum Speichern von Gleitkommazahlen &#8211; float und double &#8211; unterscheiden.<\/p>\n<ul>\n<li>bool &#8211; eine 8-Bit Variable f\u00fcr logische Zust\u00e4nde (true oder false),<\/li>\n<li>char &#8211; 8-Bit Variable f\u00fcr Zeichen (-128, +127),<\/li>\n<li>float &#8211; 32-Bit Variable f\u00fcr Flie\u00dfkommazahlen (2^-38, 2^38-1),<\/li>\n<li>double &#8211; 64-Bit Variable f\u00fcr Flie\u00dfkommazahlen (2^-308, 2^308-1).<\/li>\n<\/ul>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-44f67b1 elementor-widget elementor-widget-code-highlight\" data-id=\"44f67b1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-c line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-c\">\n\t\t\t\t\t<xmp>if (state == true)\r\n        {\r\n            gpio_put(GREEN_LED, 1);\r\n        }\r\nelse\r\n        {\r\n            gpio_put(GREEN_LED, 0);\r\n        }\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2049bc9 elementor-widget elementor-widget-text-editor\" data-id=\"2049bc9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"font-weight: 400\">Lassen Sie uns nun das Wesentliche des oben eingef\u00fcgten Codes untersuchen, n\u00e4mlich die <strong>bedingte if-Anweisung<\/strong>. Wie ich bereits erw\u00e4hnt habe, ist es damit m\u00f6glich, je nach Situation nur einen bestimmten Teil des Codes auszuf\u00fchren. In diesem Fall h\u00e4ngt &#8220;if&#8221; von den Variablen &#8220;state&#8221; ab. Sie wird dank des Operators &#8220;==&#8221; mit dem logischen Zustand true verglichen. Wenn die Variable diesen Status hat, wird der in den geschweiften Klammern stehende Befehl ausgef\u00fchrt, d.h. die gr\u00fcne LED wird aktiviert. Andernfalls, d.h. wenn state den Wert false hat, wird der Code in Klammern nach dem Schl\u00fcsselwort else ausgef\u00fchrt. In dieser Situation wird der Pin, der der GREEN_LED zugewiesen ist, in einen Low-Zustand versetzt. So konstruieren wir die einfachste Bedingung im Code. Wenn die von der if-Anweisung beschriebene Bedingung, was auch immer sie sein mag, wahr ist, wird der Code innerhalb dieser Anweisung ausgef\u00fchrt. In jedem anderen Fall f\u00fchrt der Mikrocontroller den Code aus, der nach dem Schl\u00fcsselwort else geschrieben wurde.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-827e7a1 elementor-widget elementor-widget-code-highlight\" data-id=\"827e7a1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-c line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-c\">\n\t\t\t\t\t<xmp>if (state == true)\r\n        {\r\n            gpio_put(GREEN_LED, 1);\r\n        }\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c4e8f0a elementor-widget elementor-widget-text-editor\" data-id=\"c4e8f0a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"font-weight: 400\">Es ist wichtig zu wissen, dass in bedingten Anweisungen der else-Teil nicht zwingend erforderlich ist. Der Code kann m\u00f6glichst nur aus einem einzigen if bestehen, in dem wir eine Bedingung pr\u00fcfen, aber andere F\u00e4lle interessieren uns nicht. Im Beispielcode ist eine solche Situation jedoch unerw\u00fcnscht. Wir m\u00f6chten, dass der Code auf beide Zust\u00e4nde der Taste reagiert, also m\u00fcssen wir beide F\u00e4lle beschreiben. Nat\u00fcrlich k\u00f6nnen weitere Bedingungen oder sogar Schleifen in bedingte Funktionen eingef\u00fcgt werden, die Sie sp\u00e4ter in diesem Material kennenlernen werden.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-45ff15f elementor-widget elementor-widget-video\" data-id=\"45ff15f\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;video_type&quot;:&quot;hosted&quot;,&quot;mute&quot;:&quot;yes&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"e-hosted-video elementor-wrapper elementor-open-inline\">\n\t\t\t\t\t<video class=\"elementor-video\" src=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2024\/01\/if.mov\" controls=\"\" preload=\"metadata\" muted=\"muted\" controlsList=\"nodownload\"><\/video>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2830d08 elementor-widget elementor-widget-text-editor\" data-id=\"2830d08\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"font-weight: 400\">Sobald wir wissen, wie der oben beschriebene Code funktioniert, k\u00f6nnen wir uns mit dem  <strong>Startet<\/strong>. Nachdem Sie die .uf2-Datei in den Flash-Speicher hochgeladen haben, sollten Sie einen \u00e4hnlichen Effekt wie im Video sehen. Die LED leuchtet die ganze Zeit und geht nur aus, wenn die Taste gedr\u00fcckt wird. Das mag ein wenig unintuitiv erscheinen, aber das Programm funktioniert einwandfrei. Wir wollten, dass der Zustand des GP16 sozusagen an die LED \u00fcbertragen wird, und genau das passiert. Wenn die Taste nicht gedr\u00fcckt wird, ist der Eingang des RP2040 frei und dank des Software-Pull-Ups auf einen High-Zustand ist dies der Zustand, der vom Programm gelesen wird. Wenn die Taste gedr\u00fcckt wird, wird der Eingang mit Masse kurzgeschlossen, wodurch die Zustandsvariable in den falschen Zustand versetzt wird und die LED dann nicht leuchtet.<\/p>\n<p style=\"font-weight: 400\">Sie k\u00f6nnten versuchen, die Funktionsweise des Programms umzukehren, so dass die Diode aktiviert wird, wenn die Taste gedr\u00fcckt wird. Ich werde nur andeuten, dass dies auf zwei Arten geschehen kann, indem Sie den Code innerhalb der if- und else-Anweisung \u00e4ndern oder indem Sie die Bedingung selbst \u00e4ndern, auf die die if-Anweisung reagiert.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b222cbc elementor-widget elementor-widget-heading\" data-id=\"b222cbc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">While- und do-Schleifen<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f5345c2 elementor-widget elementor-widget-code-highlight\" data-id=\"f5345c2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-c line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-c\">\n\t\t\t\t\t<xmp>#include \"pico\/stdlib.h\"\r\n\r\n#define GREEN_LED 0 \/\/assigning names to specific values\r\n#define SW_PIN 16\r\n#define TIME 500\r\n\r\nint main() {\r\n    gpio_init(SW_PIN); \/\/initialization and setting of pin mode\r\n    gpio_init(GREEN_LED);\r\n\r\n    gpio_set_dir(SW_PIN, GPIO_IN);\r\n    gpio_set_dir(GREEN_LED, GPIO_OUT);\r\n    \r\n    gpio_pull_up(SW_PIN); \/\/SW_PIN pull-up to power supply\r\n    sleep_us(100); \/\/stabilization of SW_PIN state\r\n\r\n    while (true) {\r\n        bool state = gpio_get(SW_PIN); \/\/SW_PIN value reading\r\n\r\n        gpio_put(GREEN_LED, 0); \/\/GP0 defaults to zero\r\n\r\n        while (state == false) \/\/while loop with condition\r\n        {\r\n            gpio_put(GREEN_LED, 1);\r\n            sleep_ms(TIME);\r\n            gpio_put(GREEN_LED, 0);\r\n            sleep_ms(TIME);\r\n        }\r\n        \r\n    }\r\n}\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-afc5475 elementor-widget elementor-widget-text-editor\" data-id=\"afc5475\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"font-weight: 400\">Im zweiten Beispiel sehen wir uns die <strong>while-Schleife und die do while-Schleife<\/strong> an. Diesmal werden sie jedoch von einer Bedingung abh\u00e4ngen. Wir m\u00f6chten, dass der Code innerhalb der Schleife nur dann ausgef\u00fchrt wird, wenn die Taste gedr\u00fcckt wird. Mit anderen Worten: Der Mikrocontroller wartet auf ein externes Signal, und nur wenn es empfangen wird, wird der Code aus der Schleife ausgef\u00fchrt.<\/p>\n<p style=\"font-weight: 400\">Der Programmcode ist dem Beispiel mit der bedingten Anweisung bemerkenswert \u00e4hnlich, aber es ging nicht ohne einige \u00c4nderungen. Die erste besteht darin, eine weitere Konstante <strong>TIME <\/strong> hinzuzuf\u00fcgen, deren Wert 500 ist. Wir werden ihn im Folgenden als Argument der Funktion sleep_ms verwenden, so dass wir diesen Wert nicht jedes Mal ausschreiben m\u00fcssen. Die zweite \u00c4nderung ist das Hinzuf\u00fcgen des Befehls <strong>sleep_us(100)<\/strong> vor dem Eintritt in die while-Endlosschleife. Ich werde die Bedeutung dieses Befehls sp\u00e4ter erkl\u00e4ren.<\/p>\n<p style=\"font-weight: 400\">Im Hauptteil des Programms lesen wir den Status des SW_PIN ab und schalten die LED aus, damit der GP0-Pin immer einen niedrigen Status hat, bevor wir die n\u00e4chste Schleife starten. Die n\u00e4chste while-Schleife h\u00e4ngt vom Zustand der Variablen state ab, auch hier vergleichen wir sie mit Null. Wenn die Bedingung erf\u00fcllt ist, wird der Code in Klammern ausgef\u00fchrt, der die einfache Aufgabe des Blinkens der LED ausf\u00fchrt. Wichtig ist, dass das Programm nach der ersten Ausf\u00fchrung des Codes aus der Schleife an den Anfang der Schleife zur\u00fcckkehrt und die Bedingung erneut \u00fcberpr\u00fcft. \u00c4ndert sich also der Wert von &#8220;state&#8221; w\u00e4hrend der Ausf\u00fchrung des Programms innerhalb von &#8220;while&#8221;, wird die Schleife nicht erneut ausgef\u00fchrt. Es ist wichtig, sich hier daran zu erinnern, dass sich der Wert der Variablen \u00e4ndern muss, nicht der Zustand des SW_PIN-Eingangs. Solange wir ihn nicht erneut lesen, bleibt der Wert der Variablen unver\u00e4ndert.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1cfddad elementor-widget elementor-widget-video\" data-id=\"1cfddad\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;video_type&quot;:&quot;hosted&quot;,&quot;mute&quot;:&quot;yes&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"e-hosted-video elementor-wrapper elementor-open-inline\">\n\t\t\t\t\t<video class=\"elementor-video\" src=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2024\/01\/while.mov\" controls=\"\" preload=\"metadata\" muted=\"muted\" controlsList=\"nodownload\"><\/video>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9d102e4 elementor-widget elementor-widget-text-editor\" data-id=\"9d102e4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"font-weight: 400\">Nachdem Sie das Programm ausgef\u00fchrt haben, sollten Sie einen Effekt feststellen, der mit dem im Video identisch ist. Wenn die Taste gedr\u00fcckt wird, beginnt die LED, sich synchron ein- und auszuschalten.<\/p>\n<p style=\"font-weight: 400\">Ebenfalls zu erkl\u00e4ren ist die bereits erw\u00e4hnte Funktion sleep_us, die das Programm f\u00fcr 100\u03bcs pausiert, bevor die unendliche Haupt-While-Schleife l\u00e4uft. Ihre Funktion besteht genau darin, das Programm anzuhalten, bis der Zustand der Leitung, an die der Knopf angeschlossen ist, nicht mehr stabil ist. Sie k\u00f6nnen versuchen, diesen Befehl zu kommentieren, indem Sie &#8220;\/\/&#8221; verwenden und das Programm ausf\u00fchren. Es kann dann passieren, dass beim Anschlie\u00dfen des USB-Kabels die LED sofort zu blinken beginnt, d.h. die Variable state hat sofort den Wert false angenommen, obwohl die Taste nicht gedr\u00fcckt wurde. Das liegt daran, dass das Programm so schnell ausgef\u00fchrt wird, dass die Zeit zwischen dem Lesen des SW_PIN-Status und dem Hochziehen auf einen High-Status zu kurz ist. Deshalb m\u00fcssen wir eine Weile warten, bis das Signal am GP16 stabil ist.<\/p>\n<p style=\"font-weight: 400\">Sie fragen sich vielleicht, ob es m\u00f6glich ist, aus dieser Schleife herauszukommen, ob die LED nur einmal blinken und dann auf Null zur\u00fcckkehren kann. Nat\u00fcrlich gibts es diese M\u00f6glichkeit und wir k\u00f6nnen dies auf zwei Arten tun.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-303c559 elementor-widget elementor-widget-code-highlight\" data-id=\"303c559\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-c line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-c\">\n\t\t\t\t\t<xmp>while (state == false) \/\/while loop with condition\r\n        {\r\n            gpio_put(GREEN_LED, 1);\r\n            sleep_ms(TIME);\r\n            gpio_put(GREEN_LED, 0);\r\n            sleep_ms(TIME);\r\n            state = true;\r\n        }\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-731879d elementor-widget elementor-widget-text-editor\" data-id=\"731879d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"font-weight: 400\">Wie ich bereits erw\u00e4hnt habe, wird die Bedingung der Schleife jedes Mal \u00fcberpr\u00fcft, wenn der darin enthaltene Code ausgef\u00fchrt wird. Bis jetzt konnten wir die Taste loslassen, aber der Wert state blieb unver\u00e4ndert, weil die Schleife nie die Ausf\u00fchrung von Codes au\u00dferhalb der Schleife zulie\u00df. Die eingestellte Variable f\u00fchrte zu einer Schleife im Programm. Daher k\u00f6nnen wir versuchen, aus der Schleife herauszukommen, indem wir den Wert state innerhalb der Schleife \u00e4ndern, und das ist die Anweisung, die ich in diesem Beispiel eingebaut habe. Sie setzt den state auf true und wenn die Schleife zum Start zur\u00fcckkehrt, ist die Bedingung nicht mehr erf\u00fcllt. Wir kehren also zur Haupt-Endlosschleife while zur\u00fcck und das Programm wartet darauf, dass die Taste erneut gedr\u00fcckt wird.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4555e57 elementor-widget elementor-widget-code-highlight\" data-id=\"4555e57\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-c line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-c\">\n\t\t\t\t\t<xmp>while (state == false) \/\/while loop with condition\r\n        {\r\n            gpio_put(GREEN_LED, 1);\r\n            sleep_ms(TIME);\r\n            gpio_put(GREEN_LED, 0);\r\n            sleep_ms(TIME);\r\n            break;\r\n        }\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-52322d6 elementor-widget elementor-widget-text-editor\" data-id=\"52322d6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"font-weight: 400\">Anstatt den Wert der Variablen zu \u00e4ndern, k\u00f6nnen Sie auch die Funktion break verwenden, deren Zweck genau darin besteht, den gerade ausgef\u00fchrten Code zu unterbrechen. Wenn die Funktion angetroffen wird, beendet der Mikrocontroller sofort die Ausf\u00fchrung der Schleife und kehrt zur Funktion main zur\u00fcck, unabh\u00e4ngig vom Wert der Variablen state. Neben der break-Anweisung ist auch der Befehl continue erw\u00e4hnenswert, mit dem Sie an den Anfang der Schleife zur\u00fcckkehren k\u00f6nnen. Mit anderen Worten, wenn wir sie direkt nach gpio_put(GREEN_LED, 1) platzieren, w\u00fcrde das Programm eine Schleife \u00fcber diese Funktion laufen lassen, und dabei die bereits eingeschaltete LED einschalten.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b97969e elementor-widget elementor-widget-code-highlight\" data-id=\"b97969e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-c line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-c\">\n\t\t\t\t\t<xmp>do {\r\n    gpio_put(GREEN_LED, 1);\r\n    sleep_ms(TIME);\r\n    gpio_put(GREEN_LED, 0);\r\n    sleep_ms(TIME);\r\n        } while (state == false);\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0e821a0 elementor-widget elementor-widget-text-editor\" data-id=\"0e821a0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"font-weight: 400\">In der Sprache C k\u00f6nnen wir auch die while-Schleife verwenden, die dem bereits bekannten while \u00e4hnlich ist, mit dem Unterschied, dass hier die Schleifenbedingung am Ende steht. Dadurch wird sichergestellt, dass der Mikrocontroller den in der Schleife geschriebenen Code immer mindestens einmal ausf\u00fchrt. Erst nachdem er ausgef\u00fchrt wurde, wird die Bedingung \u00fcberpr\u00fcft. Ist sie erf\u00fcllt, wird die Schleife erneut ausgef\u00fchrt, andernfalls wird das Programm fortgesetzt. Beachten Sie, dass im Falle der Konstruktion do while ein Semikolon am Ende der Bedingung steht, damit der Compiler wei\u00df, wo das Ende dieses Befehls liegt. In einer Situation, in der die Bedingung am Anfang stand, war dieses Zeichen \u00fcberfl\u00fcssig, denn direkt danach stie\u00df der Compiler auf die \u00d6ffnung der geschweiften Klammer, die genau die Information \u00fcber das Ende des Datensatzes und die \u00d6ffnung des Codeblocks, der Teil der Schleife war, darstellte.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7885504 elementor-widget elementor-widget-heading\" data-id=\"7885504\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Die for-Schleife<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6cdbd23 elementor-widget elementor-widget-code-highlight\" data-id=\"6cdbd23\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-c line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-c\">\n\t\t\t\t\t<xmp>#include \"pico\/stdlib.h\"\r\n\r\n#define GREEN_LED 0 \/\/assigning names to specific values\r\n#define TIME 500\r\n\r\nint main() {\r\n    gpio_init(GREEN_LED); \/\/initialization and setting of pin mode\r\n\r\n    gpio_set_dir(GREEN_LED, GPIO_OUT);\r\n            \r\n        for (uint8_t i = 0; i &lt; 10; i++) \/\/for loop\r\n        {\r\n            gpio_put(GREEN_LED, 1);\r\n            sleep_ms(TIME);\r\n            gpio_put(GREEN_LED, 0);\r\n            sleep_ms(TIME);\r\n        }\r\n}\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a646bc4 elementor-widget elementor-widget-text-editor\" data-id=\"a646bc4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"font-weight: 400\">Die letzte Schleife, die ich Ihnen heute zeigen m\u00f6chte, ist die <strong>for-Schleife<\/strong>. Das Programm, das wir durchf\u00fchren werden, ist den vorherigen Beispielen sehr \u00e4hnlich. Wir initialisieren einen einzelnen Eingang f\u00fcr die gr\u00fcne LED, die dank einer for-Schleife so oft blinkt, wie wir angeben.<\/p>\n<p style=\"font-weight: 400\">Die Struktur der for-Funktion ist im Vergleich zu den vorherigen Schleifen etwas anders. Wir k\u00f6nnen das Innere der Klammer in drei Teile unterteilen, die durch Semikolons voneinander getrennt sind. Zun\u00e4chst m\u00fcssen wir eine Variable zur Steuerung der Schleife deklarieren. In diesem Fall ist es uint8_t mit dem Namen &#8216;i&#8217; und dem Anfangswert Null. Eine g\u00e4ngige Faustregel ist die Verwendung von Variablen mit den Namen &#8216;i&#8217; und &#8216;j&#8217; in for-Schleifen. Als n\u00e4chstes wird eine Bedingung eingef\u00fcgt, die entscheidet, ob die Schleife weiter ausgef\u00fchrt werden kann. In diesem Beispiel soll gepr\u00fcft werden, ob &#8216;i&#8217; kleiner als zehn ist. Bisher haben wir nur einen der Operatoren f\u00fcr den Vergleich einer Variablen mit einem anderen Wert kennen gelernt. Es war &#8220;==&#8221;, aber wir k\u00f6nnen nicht nur pr\u00fcfen, ob etwas gleich ist, sondern auch, ob es kleiner (&lt;), gr\u00f6\u00dfer (&gt;), kleiner oder gleich (&lt;=) und gr\u00f6\u00dfer oder gleich (&gt;=) ist. Das mysteri\u00f6se <strong>i++<\/strong> steht am Ende, das \u00c4quivalent zur Notation i+1. Das bedeutet, dass nach jeder Ausf\u00fchrung der Schleife der Wert der Variablen &#8216;i&#8217; um eins erh\u00f6ht wird. Nichts hindert Sie daran, hier eine beliebige Operation zu platzieren. Sie k\u00f6nnen den Wert von &#8216;i&#8217; um 4 &#8211; i+4 erh\u00f6hen oder um eins verringern. Die analoge Notation i&#8211; kann dann verwendet werden.<\/p>\n<p style=\"font-weight: 400\">Lassen Sie uns nun die Schleife als Ganzes betrachten. Wenn das Programm diesen Wert erreicht, wird eine Variable &#8216;i&#8217; mit einem Wert von Null erstellt und eine Bedingung \u00fcberpr\u00fcft, um festzustellen, ob der Wert kleiner als 10 ist. Sie ist richtig, deshalb wird der Code innerhalb der Schleife ausgef\u00fchrt, d.h. die Diode wird f\u00fcr eine halbe Sekunde aktiviert. Nach dieser Operation kehren wir an den Anfang der Schleife zur\u00fcck und erh\u00f6hen den Wert von &#8216;i&#8217; um eins. Es ist immer noch weniger als 10, daher leuchtet die LED ein zweites Mal auf. Das Programm l\u00e4uft und schaltet die Diode aus, bis der Wert von &#8216;i&#8217; 10 erreicht. Dann ist die Bedingung nicht erf\u00fcllt und das Programm verl\u00e4sst die Schleife.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c7ecadb elementor-widget elementor-widget-video\" data-id=\"c7ecadb\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;video_type&quot;:&quot;hosted&quot;,&quot;mute&quot;:&quot;yes&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"e-hosted-video elementor-wrapper elementor-open-inline\">\n\t\t\t\t\t<video class=\"elementor-video\" src=\"https:\/\/botland.com.pl\/blog\/wp-content\/uploads\/2024\/01\/for.mov\" controls=\"\" preload=\"metadata\" muted=\"muted\" controlsList=\"nodownload\"><\/video>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b604856 elementor-widget elementor-widget-text-editor\" data-id=\"b604856\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"font-weight: 400\">Nachdem Sie den Code ausgef\u00fchrt haben, sollten Sie einen Effekt wie den im Video sehen. Der LED-Blinkzyklus wird zehnmal ausgef\u00fchrt, danach endet das Programm. <\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-27c49ac elementor-widget elementor-widget-heading\" data-id=\"27c49ac\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Wie geht man mit Problemen um?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0de30d4 elementor-widget elementor-widget-image\" data-id=\"0de30d4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"514\" src=\"https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/brak-srednika.png\" class=\"attachment-large size-large wp-image-75115\" alt=\"\" srcset=\"https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/brak-srednika.png 800w, https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/brak-srednika-300x193.png 300w, https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/brak-srednika-768x493.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Fehlermeldung, wenn das Semikolon fehlt.<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bcca36b elementor-widget elementor-widget-text-editor\" data-id=\"bcca36b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"font-weight: 400\">Ich m\u00f6chte in diesem Artikel ein weiteres Thema ansprechen, <strong>n\u00e4mlich die Probleml\u00f6sung<\/strong>. F\u00fcr erfahrene Entwickler mag dies eine triviale Angelegenheit sein, aber die gro\u00dfe Anzahl von Themen in Foren wie &#8220;es funktioniert nicht, Hilfe&#8221; ist meiner Meinung nach Grund genug, dieses Thema anzusprechen.<\/p>\n<p style=\"font-weight: 400\">Es ist klar, dass beim Schreiben von Codes Fehler auftreten k\u00f6nnen. Eine h\u00e4ufige Situation, die hier als Beispiel angef\u00fchrt werden kann, ist das <strong>Fehlen eines Semikolons am Ende einer Funktion<\/strong>. Ein Programm, bei dem diese Art von Fehler aufgetreten ist, kann nicht kompiliert werden, d.h. es funktioniert nicht. Bei diesem und vielen anderen Fehlern lohnt sich ein Blick in den Abschnitt PROBLEMS, wo Ihnen die Entwicklungsumgebung in der Regel recht genau sagt, was falsch ist. Ein solches Beispiel sehen Sie auf dem Bild oben. Ich habe das Semikolon bei der ersten sleep_ms Anweisung entfernt und nach dem Speichern des Codes ist ein einziger Fehler im Abschnitt Problems sichtbar. Schauen wir uns das mal genauer an &#8211; <strong>expected a \u2018;\u2019 C\/C++(65) [Ln 15, Col 13].<\/strong> Das Programm weist uns direkt darauf hin, dass das Semikolon wahrscheinlich im Code fehlt und wir das Problem in Zeile 15 des Codes suchen sollen, da dort der Fehler entdeckt wurde. Wenn wir an dieser Stelle nachsehen, stellen wir tats\u00e4chlich fest, dass in der Zeile dar\u00fcber ein Semikolon fehlt und dass das Programm bei der Analyse des Codes das Ende der Anweisung an dieser Stelle nicht bemerkt hat.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-34a3cef elementor-widget elementor-widget-image\" data-id=\"34a3cef\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"519\" src=\"https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/brak-deklaracji-zmiennej.png\" class=\"attachment-large size-large wp-image-75119\" alt=\"\" srcset=\"https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/brak-deklaracji-zmiennej.png 818w, https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/brak-deklaracji-zmiennej-300x195.png 300w, https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/brak-deklaracji-zmiennej-768x499.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Fehlermeldung, wenn eine Variable nicht deklariert ist.<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0c9fd42 elementor-widget elementor-widget-text-editor\" data-id=\"0c9fd42\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"font-weight: 400\">Ein \u00e4hnliches Beispiel wie das Fehlen eines Semikolons, ist auch <strong>eine unbekannte Variable f\u00fcr VSC<\/strong>. Wenn wir das uint8_t aus der Klammer der for-Schleife entfernen, meldet uns das Programm, dass ihm die Variable &#8216;i&#8217; unbekannt ist, was darauf hindeuten kann, dass sie nicht richtig deklariert wurde. Jede Variable muss einen Typ haben. Die Umgebung hat also korrekt erkannt, dass der Fehler in Zeile 11 aufgetreten ist, und hier sollten wir nach der Ursache f\u00fcr die Probleme suchen. <\/p>\n<p style=\"font-weight: 400\">Die Kunst des Programmierens ist eigentlich die Kunst, Fehler zu beheben. Wenn Sie die Grundlagen so weit gelernt haben, dass Sie anfangen k\u00f6nnen, Codes zu schreiben, sto\u00dfen Sie hin und wieder auf verschiedene Fehler und Probleme. Ganz zu schweigen davon, dass bei der professionellen Programmierung die meiste Zeit mit der Fehlersuche und der Suche nach optimalen L\u00f6sungen verbracht wird. Deshalb ist es immer eine gute Idee, den Fehlercode zu \u00fcberpr\u00fcfen, der in der Entwicklungsumgebung angezeigt wird. Die dortigen Informationen sind in der Regel genau und selbst wenn sie Ihnen nicht direkt sagen, wo der Fehler liegt, h\u00e4lt Sie nichts davon ab, die Meldung in eine Suchmaschine einzugeben. In den meisten F\u00e4llen finden Sie auf den ersten Seiten im Internet die richtige L\u00f6sung. Die Suche nach Informationen und das L\u00f6sen von Problemen auf der Grundlage dieser Informationen ist meiner Meinung nach eine der wichtigsten T\u00e4tigkeiten, auf denen das Programmieren beruht. Dar\u00fcber hinaus sollten Sie auch Foren im Auge behalten, die eine Gemeinschaft von Code-Enthusiasten zusammenbringen. Wenn etwas nicht funktioniert und Sie keine Idee f\u00fcr eine L\u00f6sung haben, k\u00f6nnen Sie die Frage genau dort stellen. Gleichzeitig sollten die Fragen so detailliert wie m\u00f6glich sein, beschreiben, was Sie tun m\u00f6chten, den Code hochladen und berichten, wie Sie versucht haben, das Problem zu l\u00f6sen.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e7ac8a2 elementor-widget elementor-widget-heading\" data-id=\"e7ac8a2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Ein paar Worte zum Schluss...<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-86df717 elementor-widget elementor-widget-text-editor\" data-id=\"86df717\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"font-weight: 400\">Im heutigen Material haben Sie so etwas wie <strong>Variablen<\/strong> und <strong>bedingte Anweisungen<\/strong> kennengelernt, und wir haben auch<strong> drei Arten von Schleifen<\/strong> <strong>in der Sprache C<\/strong> angewendet. Au\u00dferdem habe ich Ihnen etwas \u00fcber <strong>Fehler<\/strong> erz\u00e4hlt und darauf hingewiesen, dass es beim Programmieren sehr stark um Probleml\u00f6sungen geht, bei denen es eine \u00e4u\u00dferst n\u00fctzliche F\u00e4higkeit ist, selbst nach Informationen zu suchen. Im n\u00e4chsten Artikel werden wir uns einige Mikrocontroller-Funktionen genauer ansehen, die sich unter den Begriffen <strong>PWM und ADC<\/strong> verbergen, und versuchen, die Kommunikation mit dem Computer herzustellen.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8661f6f elementor-widget elementor-widget-spacer\" data-id=\"8661f6f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-52dd2f1 elementor-widget elementor-widget-text-editor\" data-id=\"52dd2f1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Quellen:<\/p>\n<ul>\n<li>https:\/\/datasheets.raspberrypi.com\/rp2040\/rp2040-datasheet.pdf<\/li>\n<li>https:\/\/datasheets.raspberrypi.com\/picow\/pico-w-datasheet.pdf<\/li>\n<li>https:\/\/www.raspberrypi.com\/products\/rp2040\/<\/li>\n<li>https:\/\/www.raspberrypi.com\/documentation\/microcontrollers\/raspberry-pi-pico.html<\/li>\n<\/ul>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Dieser Artikel beschreibt die theoretischen Fragen im Zusammenhang mit der Sprache C. Sie erfahren etwas \u00fcber weitere Arten von Schleifen, bedingte Anweisungen und Variablen. Alle Programmierkonstrukte werden in der Realit\u00e4t ausgef\u00fchrt.<\/p>\n","protected":false},"author":34,"featured_media":75199,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[7,21,134],"tags":[],"class_list":["post-78822","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-elektronika","category-programowanie","category-raspberry-pi"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Raspberry Pi Pico Kurs - #5 - Schleifen, Variablen und bedingte Anweisungen - Botland<\/title>\n<meta name=\"description\" content=\"Dieser Artikel beschreibt die theoretischen Fragen im Zusammenhang mit der Sprache C. Sie erfahren etwas \u00fcber weitere Arten von Schleifen, bedingte Anweisungen und Variablen. Alle Programmierkonstrukte werden in der Realit\u00e4t ausgef\u00fchrt.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Raspberry Pi Pico Kurs - #5 - Schleifen, Variablen und bedingte Anweisungen - Botland\" \/>\n<meta property=\"og:description\" content=\"Dieser Artikel beschreibt die theoretischen Fragen im Zusammenhang mit der Sprache C. Sie erfahren etwas \u00fcber weitere Arten von Schleifen, bedingte Anweisungen und Variablen. Alle Programmierkonstrukte werden in der Realit\u00e4t ausgef\u00fchrt.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\/\" \/>\n<meta property=\"og:site_name\" content=\"Botland\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/Botland\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-29T13:00:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-08T09:01:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/1-4.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1510\" \/>\n\t<meta property=\"og:image:height\" content=\"755\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Rafa\u0142 Bartoszak\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rafa\u0142 Bartoszak\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"24\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\\\/\"},\"author\":{\"name\":\"Rafa\u0142 Bartoszak\",\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/#\\\/schema\\\/person\\\/5a69e7f5db1f77c617f990e73bb83215\"},\"headline\":\"Raspberry Pi Pico Kurs &#8211; #5 &#8211; Schleifen, Variablen und bedingte Anweisungen\",\"datePublished\":\"2024-01-29T13:00:26+00:00\",\"dateModified\":\"2026-04-08T09:01:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\\\/\"},\"wordCount\":4238,\"publisher\":{\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/botland.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/1-4.png\",\"articleSection\":[\"Elektronika\",\"Programowanie\",\"Raspberry Pi\"],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\\\/\",\"url\":\"https:\\\/\\\/botland.de\\\/blog\\\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\\\/\",\"name\":\"Raspberry Pi Pico Kurs - #5 - Schleifen, Variablen und bedingte Anweisungen - Botland\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/botland.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/1-4.png\",\"datePublished\":\"2024-01-29T13:00:26+00:00\",\"dateModified\":\"2026-04-08T09:01:23+00:00\",\"description\":\"Dieser Artikel beschreibt die theoretischen Fragen im Zusammenhang mit der Sprache C. Sie erfahren etwas \u00fcber weitere Arten von Schleifen, bedingte Anweisungen und Variablen. Alle Programmierkonstrukte werden in der Realit\u00e4t ausgef\u00fchrt.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/botland.de\\\/blog\\\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\\\/#primaryimage\",\"url\":\"https:\\\/\\\/botland.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/1-4.png\",\"contentUrl\":\"https:\\\/\\\/botland.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/1-4.png\",\"width\":1510,\"height\":755},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\\\/\\\/botland.de\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Raspberry Pi Pico Kurs &#8211; #5 &#8211; Schleifen, Variablen und bedingte Anweisungen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/botland.de\\\/blog\\\/\",\"name\":\"Botland\",\"description\":\"Blog Raspberry Pi, Arduino, elektronika i robotyka - Botland\",\"publisher\":{\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/botland.de\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/#organization\",\"name\":\"Botland\",\"url\":\"https:\\\/\\\/botland.de\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/botland.store\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/04\\\/logo_kolor_WP_2-1.png\",\"contentUrl\":\"https:\\\/\\\/botland.store\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/04\\\/logo_kolor_WP_2-1.png\",\"width\":250,\"height\":57,\"caption\":\"Botland\"},\"image\":{\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/facebook.com\\\/Botland\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/#\\\/schema\\\/person\\\/5a69e7f5db1f77c617f990e73bb83215\",\"name\":\"Rafa\u0142 Bartoszak\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/botland.de\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/IMG_21531-300x300.jpg\",\"url\":\"https:\\\/\\\/botland.de\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/IMG_21531-300x300.jpg\",\"contentUrl\":\"https:\\\/\\\/botland.de\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/IMG_21531-300x300.jpg\",\"caption\":\"Rafa\u0142 Bartoszak\"},\"description\":\"Wsp\u00f3\u0142pracuj\u0105cy z Botlandem elektronik, kt\u00f3ry dzieli si\u0119 swoj\u0105 wiedz\u0105 w internecie. Entuzjasta system\u00f3w cyfrowych, uk\u0142ad\u00f3w programowalnych i mikroelektroniki. Pasjonat historii, ze szczeg\u00f3lnym naciskiem na wiek XX.\",\"url\":\"https:\\\/\\\/botland.de\\\/blog\\\/author\\\/rafal-bartoszak\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Raspberry Pi Pico Kurs - #5 - Schleifen, Variablen und bedingte Anweisungen - Botland","description":"Dieser Artikel beschreibt die theoretischen Fragen im Zusammenhang mit der Sprache C. Sie erfahren etwas \u00fcber weitere Arten von Schleifen, bedingte Anweisungen und Variablen. Alle Programmierkonstrukte werden in der Realit\u00e4t ausgef\u00fchrt.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\/","og_locale":"de_DE","og_type":"article","og_title":"Raspberry Pi Pico Kurs - #5 - Schleifen, Variablen und bedingte Anweisungen - Botland","og_description":"Dieser Artikel beschreibt die theoretischen Fragen im Zusammenhang mit der Sprache C. Sie erfahren etwas \u00fcber weitere Arten von Schleifen, bedingte Anweisungen und Variablen. Alle Programmierkonstrukte werden in der Realit\u00e4t ausgef\u00fchrt.","og_url":"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\/","og_site_name":"Botland","article_publisher":"https:\/\/facebook.com\/Botland\/","article_published_time":"2024-01-29T13:00:26+00:00","article_modified_time":"2026-04-08T09:01:23+00:00","og_image":[{"width":1510,"height":755,"url":"https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/1-4.png","type":"image\/png"}],"author":"Rafa\u0142 Bartoszak","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Rafa\u0142 Bartoszak","Gesch\u00e4tzte Lesezeit":"24\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\/#article","isPartOf":{"@id":"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\/"},"author":{"name":"Rafa\u0142 Bartoszak","@id":"https:\/\/botland.de\/blog\/#\/schema\/person\/5a69e7f5db1f77c617f990e73bb83215"},"headline":"Raspberry Pi Pico Kurs &#8211; #5 &#8211; Schleifen, Variablen und bedingte Anweisungen","datePublished":"2024-01-29T13:00:26+00:00","dateModified":"2026-04-08T09:01:23+00:00","mainEntityOfPage":{"@id":"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\/"},"wordCount":4238,"publisher":{"@id":"https:\/\/botland.de\/blog\/#organization"},"image":{"@id":"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\/#primaryimage"},"thumbnailUrl":"https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/1-4.png","articleSection":["Elektronika","Programowanie","Raspberry Pi"],"inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\/","url":"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\/","name":"Raspberry Pi Pico Kurs - #5 - Schleifen, Variablen und bedingte Anweisungen - Botland","isPartOf":{"@id":"https:\/\/botland.de\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\/#primaryimage"},"image":{"@id":"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\/#primaryimage"},"thumbnailUrl":"https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/1-4.png","datePublished":"2024-01-29T13:00:26+00:00","dateModified":"2026-04-08T09:01:23+00:00","description":"Dieser Artikel beschreibt die theoretischen Fragen im Zusammenhang mit der Sprache C. Sie erfahren etwas \u00fcber weitere Arten von Schleifen, bedingte Anweisungen und Variablen. Alle Programmierkonstrukte werden in der Realit\u00e4t ausgef\u00fchrt.","breadcrumb":{"@id":"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\/#primaryimage","url":"https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/1-4.png","contentUrl":"https:\/\/botland.de\/blog\/wp-content\/uploads\/2024\/01\/1-4.png","width":1510,"height":755},{"@type":"BreadcrumbList","@id":"https:\/\/botland.de\/blog\/raspberry-pi-pico-kurs-5-schleifen-variablen-und-bedingte-anweisungen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/botland.de\/blog\/"},{"@type":"ListItem","position":2,"name":"Raspberry Pi Pico Kurs &#8211; #5 &#8211; Schleifen, Variablen und bedingte Anweisungen"}]},{"@type":"WebSite","@id":"https:\/\/botland.de\/blog\/#website","url":"https:\/\/botland.de\/blog\/","name":"Botland","description":"Blog Raspberry Pi, Arduino, elektronika i robotyka - Botland","publisher":{"@id":"https:\/\/botland.de\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/botland.de\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/botland.de\/blog\/#organization","name":"Botland","url":"https:\/\/botland.de\/blog\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/botland.de\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/botland.store\/blog\/wp-content\/uploads\/2018\/04\/logo_kolor_WP_2-1.png","contentUrl":"https:\/\/botland.store\/blog\/wp-content\/uploads\/2018\/04\/logo_kolor_WP_2-1.png","width":250,"height":57,"caption":"Botland"},"image":{"@id":"https:\/\/botland.de\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/facebook.com\/Botland\/"]},{"@type":"Person","@id":"https:\/\/botland.de\/blog\/#\/schema\/person\/5a69e7f5db1f77c617f990e73bb83215","name":"Rafa\u0142 Bartoszak","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/botland.de\/blog\/wp-content\/uploads\/2023\/07\/IMG_21531-300x300.jpg","url":"https:\/\/botland.de\/blog\/wp-content\/uploads\/2023\/07\/IMG_21531-300x300.jpg","contentUrl":"https:\/\/botland.de\/blog\/wp-content\/uploads\/2023\/07\/IMG_21531-300x300.jpg","caption":"Rafa\u0142 Bartoszak"},"description":"Wsp\u00f3\u0142pracuj\u0105cy z Botlandem elektronik, kt\u00f3ry dzieli si\u0119 swoj\u0105 wiedz\u0105 w internecie. Entuzjasta system\u00f3w cyfrowych, uk\u0142ad\u00f3w programowalnych i mikroelektroniki. Pasjonat historii, ze szczeg\u00f3lnym naciskiem na wiek XX.","url":"https:\/\/botland.de\/blog\/author\/rafal-bartoszak\/"}]}},"_links":{"self":[{"href":"https:\/\/botland.de\/blog\/wp-json\/wp\/v2\/posts\/78822","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/botland.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/botland.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/botland.de\/blog\/wp-json\/wp\/v2\/users\/34"}],"replies":[{"embeddable":true,"href":"https:\/\/botland.de\/blog\/wp-json\/wp\/v2\/comments?post=78822"}],"version-history":[{"count":0,"href":"https:\/\/botland.de\/blog\/wp-json\/wp\/v2\/posts\/78822\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/botland.de\/blog\/wp-json\/wp\/v2\/media\/75199"}],"wp:attachment":[{"href":"https:\/\/botland.de\/blog\/wp-json\/wp\/v2\/media?parent=78822"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/botland.de\/blog\/wp-json\/wp\/v2\/categories?post=78822"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/botland.de\/blog\/wp-json\/wp\/v2\/tags?post=78822"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}