Informationen zum Mikrocontroller:
Während Netduino C # verwendet, sind die meisten anderen Mikrocontroller in C programmiert - das sind zwei völlig unterschiedliche Programmiersprachen. Darüber hinaus verwendet Arduino eine Version von C ++, die sich noch unterscheidet.
Mikrocontroller werden normalerweise in C oder in Assembly (ASM) programmiert. Wenn Sie neu sind, würde ich empfehlen, dass C. Arduino kein Mikrocontroller ist, sondern ein Entwicklungsboard (normalerweise), das auf einem AVR-Mikrocontroller basiert, obwohl andere MCUs verwendet werden. Auf den integrierten MCUs (Mikrocontroller-Einheiten) ist ein Bootloader installiert. Dies ist ein spezieller Codeabschnitt, der die Funktionsweise der MCU ändert. Im Fall von Arduino ermöglicht es die Programmierung über die serielle Schnittstelle im Gegensatz zu Standardprogrammiermethoden sowie den Zugriff auf spezielle Bibliotheksfunktionen. Auf der Platine befindet sich (normalerweise) ein USB-zu-Seriell-Konverter, da viele kleinere Chips keine interne USB-Hardware haben und der USB-Anschluss für eine ordnungsgemäße Kommunikation konvertiert werden muss.
Frage 1:
Eine MCU verfügt über eine bestimmte Anzahl von E / A-Pins. Dies sind Pins, die Ein- oder Ausgänge sein können. Sie können so viele digitale Sensoren direkt anschließen, wie E / A-Pins vorhanden sind. Analoge Sensoren sind jedoch auf die Anzahl der verfügbaren ADC-Pins (Analog-Digital-Wandler) beschränkt. Nicht alle MCUs verfügen über eine ADC-Einheit. Sie können auch viele, viele weitere Sensoren anschließen, indem Sie externe GPIO-Expander oder parallele serielle Ausgangsregister verwenden. Diese können mit wenigen MCU-Pins gesteuert werden und die Anzahl der verfügbaren E / A-Pins erheblich erhöhen.
Frage 2:
Sie schreiben ein Programm auf den Computer, der auf der MCU installiert ist. Wenn der Code eine externe Kommunikation ermöglicht (über USB, seriell, SPI, I2C usw.), können Sie mit dem Chip kommunizieren, während er ausgeführt wird. Diese Fähigkeit hängt jedoch von dem Code ab, den Sie schreiben. Welche Sprache Sie für die Kommunikation mit der MCU verwenden, ist für alles, was Sie möchten, ziemlich offen, da die eigentliche Kommunikation von der Hardware und nicht von der Programmiersprache erfolgt. Vielleicht haben Sie das mit der Erwähnung von "C #" gemeint.
Dein Projekt:
Realistisch gesehen klingt Ihr Projekt nicht so kompliziert: Lesen Sie einen Temperatursensor (klingt wie analog) und treiben Sie einen Motor an, um ein Fenster basierend auf diesem Sensorwert zu öffnen / schließen. Wann der Motor gestoppt werden muss, hängt wahrscheinlich von einem anderen Sensor ab, der am Fenster angebracht ist. Dies kann mit einer sehr kleinen MCU mit wenigen Pins und wenig Programmraum (wie dem ATtiny24 oder ATtiny25) erfolgen. Aber ich denke, Sie werden auf viele Probleme stoßen, wenn Sie nicht zuerst an etwas Kleinerem arbeiten. Die Standard- "Hallo Welt" von MCUs besteht darin, eine LED zu blinken. Bauen Sie dann darauf auf, indem Sie versuchen, die Blinkgeschwindigkeit mit einem Knopf zu steuern und dann einen Motor usw. anzutreiben.
Persönliche Meinung...
Ich habe weder den Wunsch noch jemals, Arduino zu verwenden. Ich baue alle meine eigenen Schaltkreise, normalerweise mit AVR-MCUs, aber ich verstehe den Grund, warum Leute sie verwenden. Persönlich denke ich, dass es weitaus besser ist, zu lernen, wie man eine eigene Schaltung entwirft und programmiert, als den Code anderer Leute zu kopieren und zufällige Dinge zusammenzusetzen - was die meisten Arduino-Benutzer tun. Es gibt VIELE Online-Tutorials für den Einstieg in Mikrocontroller ohne Arduino. Ich würde Ihnen empfehlen, dies zu prüfen, wenn Sie Pläne haben, in Zukunft Ihre eigenen Schaltkreise zu entwerfen. Wenn Sie keine Lust haben, etwas zu lernen, kopieren Sie auf jeden Fall weg, aber seien Sie gewarnt, dass es oft viel einfachere und effektivere Möglichkeiten gibt, Dinge zu tun, die Sie nie verstehen werden, wenn Sie nicht wissen, was los ist.