"Teensy 4.0" 修訂間的差異
(→SDIO 4 bit) |
(→SDIO 4 bit) |
||
行 11: | 行 11: | ||
# Change pin define in code | # Change pin define in code | ||
## SD.begin(BUILTIN_SDCARD) | ## SD.begin(BUILTIN_SDCARD) | ||
+ | <pre> | ||
+ | /* | ||
+ | SD card datalogger | ||
+ | |||
+ | This example shows how to log data from three analog sensors | ||
+ | to an SD card using the SD library. | ||
+ | |||
+ | The circuit: | ||
+ | * analog sensors on analog ins 0, 1, and 2 | ||
+ | * SD card attached to SPI bus as follows: | ||
+ | ** MOSI - pin 11, pin 7 on Teensy with audio board | ||
+ | ** MISO - pin 12 | ||
+ | ** CLK - pin 13, pin 14 on Teensy with audio board | ||
+ | ** CS - pin 4, pin 10 on Teensy with audio board | ||
+ | |||
+ | created 24 Nov 2010 | ||
+ | modified 9 Apr 2012 | ||
+ | by Tom Igoe | ||
+ | |||
+ | This example code is in the public domain. | ||
+ | |||
+ | */ | ||
+ | |||
+ | #include <SD.h> | ||
+ | #include <SPI.h> | ||
+ | |||
+ | // On the Ethernet Shield, CS is pin 4. Note that even if it's not | ||
+ | // used as the CS pin, the hardware CS pin (10 on most Arduino boards, | ||
+ | // 53 on the Mega) must be left as an output or the SD library | ||
+ | // functions will not work. | ||
+ | |||
+ | // change this to match your SD shield or module; | ||
+ | // Arduino Ethernet shield: pin 4 | ||
+ | // Adafruit SD shields and modules: pin 10 | ||
+ | // Sparkfun SD shield: pin 8 | ||
+ | // Teensy audio board: pin 10 | ||
+ | // Teensy 3.5 & 3.6 on-board: BUILTIN_SDCARD | ||
+ | // Wiz820+SD board: pin 4 | ||
+ | // Teensy 2.0: pin 0 | ||
+ | // Teensy++ 2.0: pin 20 | ||
+ | //const int chipSelect = 36; | ||
+ | |||
+ | void setup() | ||
+ | { | ||
+ | //UNCOMMENT THESE TWO LINES FOR TEENSY AUDIO BOARD: | ||
+ | //SPI.setMOSI(37); // Audio shield has MOSI on pin 7 | ||
+ | //SPI.setSCK(36); // Audio shield has SCK on pin 14 | ||
+ | |||
+ | // Open serial communications and wait for port to open: | ||
+ | Serial.begin(9600); | ||
+ | while (!Serial) { | ||
+ | ; // wait for serial port to connect. Needed for Leonardo only | ||
+ | } | ||
+ | |||
+ | |||
+ | Serial.print("Initializing SD card..."); | ||
+ | |||
+ | // see if the card is present and can be initialized: | ||
+ | if (!SD.begin(BUILTIN_SDCARD)) { | ||
+ | Serial.println("Card failed, or not present"); | ||
+ | // don't do anything more: | ||
+ | return; | ||
+ | } | ||
+ | Serial.println("card initialized."); | ||
+ | } | ||
+ | |||
+ | void loop() | ||
+ | { | ||
+ | // make a string for assembling the data to log: | ||
+ | String dataString = ""; | ||
+ | |||
+ | // read three sensors and append to the string: | ||
+ | for (int analogPin = 0; analogPin < 3; analogPin++) { | ||
+ | int sensor = analogRead(analogPin); | ||
+ | dataString += String(sensor); | ||
+ | if (analogPin < 2) { | ||
+ | dataString += ","; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // open the file. note that only one file can be open at a time, | ||
+ | // so you have to close this one before opening another. | ||
+ | File dataFile = SD.open("datalog.txt", FILE_WRITE); | ||
+ | |||
+ | // if the file is available, write to it: | ||
+ | if (dataFile) { | ||
+ | dataFile.println(dataString); | ||
+ | dataFile.close(); | ||
+ | // print to the serial port too: | ||
+ | Serial.println(dataString); | ||
+ | } | ||
+ | // if the file isn't open, pop up an error: | ||
+ | else { | ||
+ | Serial.println("error opening datalog.txt"); | ||
+ | } | ||
+ | } | ||
+ | </pre> |
於 2019年10月27日 (日) 11:57 的修訂
IDE installation
- Download & Extract Arduino
- Install udev Rules
- The udev rule file gives non-root users permission to use the Teensy devices (serial, HID, etc). More Linux tips below.
sudo cp 49-teensy.rules /etc/udev/rules.d/
SDIO 4 bit
- Format SD before running
- Change pin define in code
- SD.begin(BUILTIN_SDCARD)
/* SD card datalogger This example shows how to log data from three analog sensors to an SD card using the SD library. The circuit: * analog sensors on analog ins 0, 1, and 2 * SD card attached to SPI bus as follows: ** MOSI - pin 11, pin 7 on Teensy with audio board ** MISO - pin 12 ** CLK - pin 13, pin 14 on Teensy with audio board ** CS - pin 4, pin 10 on Teensy with audio board created 24 Nov 2010 modified 9 Apr 2012 by Tom Igoe This example code is in the public domain. */ #include <SD.h> #include <SPI.h> // On the Ethernet Shield, CS is pin 4. Note that even if it's not // used as the CS pin, the hardware CS pin (10 on most Arduino boards, // 53 on the Mega) must be left as an output or the SD library // functions will not work. // change this to match your SD shield or module; // Arduino Ethernet shield: pin 4 // Adafruit SD shields and modules: pin 10 // Sparkfun SD shield: pin 8 // Teensy audio board: pin 10 // Teensy 3.5 & 3.6 on-board: BUILTIN_SDCARD // Wiz820+SD board: pin 4 // Teensy 2.0: pin 0 // Teensy++ 2.0: pin 20 //const int chipSelect = 36; void setup() { //UNCOMMENT THESE TWO LINES FOR TEENSY AUDIO BOARD: //SPI.setMOSI(37); // Audio shield has MOSI on pin 7 //SPI.setSCK(36); // Audio shield has SCK on pin 14 // Open serial communications and wait for port to open: Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only } Serial.print("Initializing SD card..."); // see if the card is present and can be initialized: if (!SD.begin(BUILTIN_SDCARD)) { Serial.println("Card failed, or not present"); // don't do anything more: return; } Serial.println("card initialized."); } void loop() { // make a string for assembling the data to log: String dataString = ""; // read three sensors and append to the string: for (int analogPin = 0; analogPin < 3; analogPin++) { int sensor = analogRead(analogPin); dataString += String(sensor); if (analogPin < 2) { dataString += ","; } } // open the file. note that only one file can be open at a time, // so you have to close this one before opening another. File dataFile = SD.open("datalog.txt", FILE_WRITE); // if the file is available, write to it: if (dataFile) { dataFile.println(dataString); dataFile.close(); // print to the serial port too: Serial.println(dataString); } // if the file isn't open, pop up an error: else { Serial.println("error opening datalog.txt"); } }